เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจฆเฉ€ เจฆเฉเจจเฉ€เจ†เจ‚ เจฌเจพเจฐเฉ‡ เจธเจฟเฉฑเจ–เจฃ เจตเจพเจฒเฉ‡ เจตเจฟเจฆเจฟเจ†เจฐเจฅเฉ€ เจฆเจพ เจฆเจฟเจฎเจพเจ— เจ•เฉ€ เจ•เจฐเจจ เจฆเฉ‡ เจธเจฎเจฐเฉฑเจฅ เจนเฉˆ?

เจคเฉเจนเจพเจกเจพ เจฆเจฟเจจ เจšเฉฐเจ—เจพ เจฒเฉฐเจ˜เฉ‡.

เจฌเจพเจธเจผ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฒเจฟเจ–เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจฎเฉˆเจจเฉ‚เฉฐ เจ…เจนเจฟเจธเจพเจธ เจนเฉ‹เจ‡เจ† เจ•เจฟ เจธเจญ เจ•เฉเจ เจฌเจฟเจฒเจ•เฉเจฒ เจตเฉฑเจ–เจฐเจพ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจชเจฐ เจธเจญ เจ•เฉเจ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจฎเฉˆเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฆเจฟเจ–เจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจฎเฉˆเจ‚ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ เจ•เจฟเจนเฉœเฉ€เจ†เจ‚ เจ…เจธเจผเจฒเฉ€เจฒเจคเจพเจตเจพเจ‚ เจ…เจคเฉ‡ เจฌเฉˆเจธเจพเจ–เฉ€เจ†เจ‚ เจฒเจฟเจ–เฉ€เจ†เจ‚ เจนเจจ, เจชเจฐ เจ…เจœเฉ‡ เจคเฉฑเจ• เจ—เจฟเจ†เจจ เจฆเจพ เจ—เฉฑเจกเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ. เจฆเฉ‚เจœเฉ‡ เจธเจผเจฌเจฆเจพเจ‚ เจตเจฟเฉฑเจš, เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจฆเจพ เจ‡เฉฑเจ• เจ•เฉˆเจฐเฉ€เจ•เฉ‡เจšเจฐเฅค

เจ‰เจฆเฉ‡เจธเจผ


เจ‡เจธ เจฒเจˆ เจ•เฉเจ เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเฉ‹ เจ—เจฟเจ†:

  • เจตเจฐเจ— เจจเฉ‚เฉฐ เจ›เฉฑเจก เจ•เฉ‡, เจธเจผเจฌเจฆ เจฒเจˆ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจคเฉเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เฉ€เจคเจพ
  • เจฆเฉ‹ เจธเจผเจฌเจฆเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจคเฉเจ•เจพเจ‚ เจจเฉ‚เฉฐ เจชเจพเจฐ เจ•เฉ€เจคเจพ

เจ•เจพเจนเจฆเฉ‡ เจฒเจˆ? เจ เฉ€เจ• เจนเฉˆ, เจ‡เจน เจนเฉˆ - เจ…เจคเฉ‡ เจ‡เจน เจนเฉ€ เจนเฉˆ.
เจ•เฉŒเจฃ เจจเจนเฉ€เจ‚ เจœเจพเจฃเจฆเจพ, เจ‡เฉฑเจ• เจตเจฐเจ— เจคเฉเจ•เจฌเฉฐเจฆเฉ€ (เจ†เจฎ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš - เจ‡เฉฑเจ• เจตเจฐเจ—) เจฆเฉ‹ เจธเจผเจฌเจฆ เจนเจจ เจœเจฟเจจเฉเจนเจพเจ‚ เจฆเฉ‡ เจธเจชเฉˆเจฒเจฟเฉฐเจ— เจตเจฟเฉฑเจš เจ†เจ–เจฐเฉ€ เจฆเฉ‹ เจ…เฉฑเจ–เจฐ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเฉ‡ เจนเจจ, เจœเฉ‹ (เจ…เจ•เจธเจฐ, เจ‡เจน เจ‡เจ•เฉ‹ เจšเฉ€เจœเจผ เจนเฉˆ) เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจคเฉเจ•เจฌเฉฐเจฆเฉ€ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ—เฉเจฒเจพเจฌ เจ เฉฐเจกเฉ‡ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ; เจŸเจพเจ‡เจฐ - เจ•เจพเจฐ. เจ†เจงเฉเจจเจฟเจ• เจคเจธเจฆเฉ€เจ• เจตเจฟเฉฑเจš เจตเจฐเจ—เจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฒเฉ‹เจ•เจพเจ‚ เจฆเฉเจ†เจฐเจพ เจตเจฟเจธเจผเฉ‡เจธเจผ เจคเฉŒเจฐ 'เจคเฉ‡ เจฎเจจเจœเจผเฉ‚เจฐ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจฎเฉเฉฑเจขเจฒเฉ€เจคเจพ เจฆเฉ‡ เจ•เจพเจฐเจจ.

เจซเฉˆเจธเจฒเฉ‡ เจฆเจพ


เจ‡เจน เจฎเฉˆเจจเฉ‚เฉฐ เจœเจพเจชเจฆเจพ เจธเฉ€ เจ•เจฟ เจธเจญ เจคเฉ‹เจ‚ เจธเจฐเจฒ เจนเฉฑเจฒ เจฌเจพเจธเจผ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจฒเจฟเจ–เจฃเจพ เจธเฉ€ เจœเฉ‹ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจฎเฉŒเจœเฉ‚เจฆ เจคเฉเจ• เจœเจจเจฐเฉ‡เจŸเจฐ - HOST เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจฎเฉเฉฑเจ– เจคเฉŒเจฐ 'เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจตเจฟเจ…เฉฐเจœเจจ เจฆเฉเจ†เจฐเจพ เจšเฉเจฃเจฆเจพ เจนเฉˆ, เจจเจพ เจ•เจฟ เจธเจชเฉˆเจฒเจฟเฉฐเจ— เจฆเฉเจ†เจฐเจพเฅค เจ•เจฟเจธ เจ•เจฟเจธเจฎ เจฆเจพ HOST? เจ•เจฟเจ‰เจ‚เจ•เจฟ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจธเจพเจˆเจŸ เจฆเจพ เจ…เจธเจฒเฉ€ เจจเจพเจฎ เจฆเจฐเจธเจพเจ‰เจ—เฉ‡, เจคเจพเจ‚ เจ‰เจน เจ•เจนเจฟเจฃเจ—เฉ‡ เจ•เจฟ เจ‡เจน เจ‡เฉฑเจ• เจ‡เจธเจผเจคเจฟเจนเจพเจฐ เจนเฉˆเฅค เจ•เจฟเจ‰เจ‚ เจจเจพ เจ‡เจธเจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เฉ€เจ? เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจตเจฟเจ…เฉฐเจœเจจเจพเจ‚ เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡ เจคเฉเจ•เจพเจ‚ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจ เจฆเฉ‡ เจ†เจชเจฃเฉ‡ เจซเจพเจ‡เจฆเฉ‡ เจฆเฉ‡ เจฌเจพเจตเจœเฉ‚เจฆ, เจ‰เจน เจ…เจœเฉ‡ เจตเฉ€ เจ…เจ•เจธเจฐ เจตเจฐเจ— เจชเฉˆเจฆเจพ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจฆเฉ‚เจœเจพ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เจœเฉ‡ เจตเฉ€ เจ†เจชเจฃเฉ‡ เจฆเจฟเจฎเจพเจ— เจจเจพเจฒ เจธเฉ‹เจšเจฃเจพ เจชเจเจ—เจพ, เจฆเฉ‹ เจธเจผเจฌเจฆเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจคเฉเจ•เจฌเฉฐเจฆเฉ€ เจฒเฉฑเจญเจฃ เจฒเจˆ เจŸเฉˆเจฌเจพเจ‚ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจฌเจฆเจฒเจฃ เจตเจฟเฉฑเจš เจธเจฎเจพเจ‚ เจฌเจฟเจคเจพเจ‰เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจธเฉ‚เจšเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจตเจพเจฐ-เจตเจพเจฐ เจธเจผเจฌเจฆเจพเจ‚ เจจเฉ‚เฉฐ เจฏเจพเจฆ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจŠเจฐเจœเจพ เจฒเจ—เจพเจ‰เจฃเฉ€ เจชเจตเฉ‡เจ—เฉ€เฅค

เจฎเจœเจผเจฌเฉ‚เจค โ€‹โ€‹เจคเฉเจ•เจพเจ‚เจค เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ

เจฎเฉˆเจจเฉ‚เฉฐ เจ•เฉ€ เจชเจคเจพ? เจฎเฉˆเจ‚ เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจฆเจพ เจนเจพเจ‚ wget, เจœเฉ‹ เจ•เจฟ เจฆเจฟเฉฑเจคเฉ‡ URL 'เจคเฉ‡ เจชเฉฐเจจเฉ‡ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ เฉ€เจ• เจนเฉˆ, เจ†เจ“ เจฌเฉ‡เจจเจคเฉ€ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเฉ€เจ - เจธเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจคเฉเจ•เจฌเฉฐเจฆเฉ€ เจตเจพเจฒเฉ‡ เจธเจผเจฌเจฆ เจฆเฉ‡ เจจเจพเจฎ เจตเจพเจฒเฉ€ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• HTML เจชเฉฐเจจเจพ เจฎเจฟเจฒเจฆเจพ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ†เจ“ "เจ‡เฉฑเจฅเฉ‡" เจธเจผเจฌเจฆ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเฉ€เจ:

wget https://HOST/rifma/ะทะดะตััŒ

เจชเจฐ เจฎเฉˆเจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจธเจผเจฌเจฆเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ, เจฎเฉˆเจ‚ เจนเฉ‹เจฐ เจธเจญ เจ•เฉเจ เจ•เจฟเจตเฉ‡เจ‚ เจ›เฉเจŸเจ•เจพเจฐเจพ เจชเจพ เจธเจ•เจฆเจพ เจนเจพเจ‚? เจ…เจธเฉ€เจ‚ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจธเจผเจฌเจฆเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจซเจพเจฐเจฎเฉˆเจŸ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ, เจญเจพเจตเฉ‡เจ‚ เจ‡เจน เจ•เจฟเฉฐเจจเฉ€ เจตเฉ€ เจ…เจœเฉ€เจฌ เจ•เจฟเจ‰เจ‚ เจจเจพ เจนเฉ‹เจตเฉ‡, เจธเฉ‚เจšเฉ€ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจ…เจคเฉ‡ เจธเจผเจฌเจฆ เจŸเฉˆเจ—เจธ เจตเจฟเฉฑเจš เจนเจจเฅค เจ–เฉˆเจฐ, เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจตเจงเฉ€เจ† เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจนเฉˆ. sed - เจ†เจ“ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฒเจฟเจ–เฉ€เจ:

cat $word | grep '<li>' | sed -e "s%<li>%%" | sed -e "s%</li>%%" | sed -e "s/ //g" | sed -e "/^$/d" 1> $word

เจชเจนเจฟเจฒเจพเจ‚, เจ…เจธเฉ€เจ‚ เจธเจผเจฌเจฆ เจซเจพเจˆเจฒ เจคเฉ‹เจ‚ เจฒเจพเจˆเจจเจพเจ‚ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจœเจฟเจธ เจตเจฟเฉฑเจš เจŸเฉˆเจ— เจนเฉเฉฐเจฆเจพ เจนเฉˆ - เจธเจพเจจเฉ‚เฉฐ เจธเจผเจฌเจฆเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ–เจพเจฒเฉ€ เจŸเฉˆเจ— เจ…เจคเฉ‡ เจฒเจพเจˆเจจเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน เจฎเจฟเจฒเจฆเจพ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจŸเฉˆเจ— เจจเฉ‚เฉฐ เจ–เฉเจฆ เจนเจŸเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจฌเฉฐเจฆ เจนเฉ‹เจฃ เจตเจพเจฒเฉ‡ เจ‡เฉฑเจ• - เจ‡เฉฑเจฅเฉ‡ เจธเจฒเฉˆเจธเจผ เจฆเฉ€ เจฌเจœเจพเจ เจชเฉเจฐเจคเฉ€เจธเจผเจค เจšเจฟเฉฐเจจเฉเจน เจตเจฐเจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจŸเฉˆเจ— เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ‡เฉฑเจ• เจธเจฒเฉˆเจธเจผ เจนเฉˆ, เจœเจฟเจธ เจ•เจพเจฐเจจ sed เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฅเฉ‹เฉœเจพ เจœเจฟเจนเจพ เจจเจนเฉ€เจ‚ เจธเจฎเจเจฆเจพ. เจ…เจคเฉ‡ เจฆเจฟเจฒเจšเจธเจชเฉ€ เจจเจพเจฒ เจธเจญ เจ•เฉเจ เจ เฉ€เจ• เจนเฉˆ. เจ…เจธเฉ€เจ‚ เจซเจพเจˆเจฒ เจคเฉ‹เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจ–เจพเจฒเฉ€ เจฅเจพเจ‚เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚, เจ–เจพเจฒเฉ€ เจฒเจพเจˆเจจเจพเจ‚ เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚. เจตเฉ‹เจ‡เจฒเจพ - เจธเจผเจฌเจฆเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจคเจฟเจ†เจฐ-เจ•เฉ€เจคเฉ€ เจธเฉ‚เจšเฉ€.

เจ…เจ–เฉ€เจฐเจฒเฉ‡ เจ…เฉฑเจ–เจฐเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจคเฉเจ•เจฌเฉฐเจฆเฉ€ เจตเจพเจฒเฉ‡ เจธเจผเจฌเจฆเจพเจ‚ เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจฃ เจฒเจˆ, เจ…เจธเจฒ เจธเจผเจฌเจฆ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ†เจ–เจฐเฉ€ เจฆเฉ‹ เจ…เฉฑเจ–เจฐเจพเจ‚ เจจเฉ‚เฉฐ เจšเฉเจฃเฉ‹ เจ…เจคเฉ‡ เจธเฉ‚เจšเฉ€ เจจเฉ‚เฉฐ เจธเจพเจซเจผ เจ•เจฐเฉ‹:

squad=${word:((${#word}-2)):2}
cat $word | sed -e "/.$squad$/d" 1> $word

เจ…เจธเฉ€เจ‚ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚, เจ…เจธเฉ€เจ‚ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ - เจธเจญ เจ•เฉเจ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ... เจคเจพเจ‚, "เจชเจฒเฉ‡" เจธเจผเจฌเจฆ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจ•เจฟเฉฑเจฅเฉ‡ เจนเฉˆ? เจ…เจคเฉ‡ "เจฎเฉˆเจ‚ เจœเจพ เจฐเจฟเจนเจพ เจนเจพเจ‚" เจธเจผเจฌเจฆ เจฒเจˆ? เจซเจพเจˆเจฒ เจ–เจพเจฒเฉ€ เจนเฉˆ! เจ…เจคเฉ‡ เจ‡เจน เจธเจญ เจ‡เจธ เจฒเจˆ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจธเจผเจฌเจฆ เจ•เฉเจฐเจฟเจ†เจตเจพเจ‚ เจนเจจ, เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจœเจพเจฃเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ‰เจน เจ‰เจนเจจเจพเจ‚ เจฒเจˆ เจ•เฉ€ เจ•เจฐเจฆเฉ‡ เจนเจจ เจœเฉ‹ เจ•เฉเจฐเจฟเจ†เจตเจพเจ‚ เจจเจพเจฒ เจคเฉเจ•เจฌเฉฐเจฆเฉ€ เจ•เจฐเจฆเฉ‡ เจนเจจ. เจ•เฉเจฐเจฟเจ†เจตเจพเจ‚ เจฆเฉ€ เจคเฉเจ•เจฌเฉฐเจฆเฉ€ เจตเฉ€ เจตเจฐเจ— เจคเฉเจ•เจฌเฉฐเจฆเฉ€ เจจเจพเจฒเฉ‹เจ‚ เจตเฉ€ เจฎเจพเฉœเฉ€ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฐเฉ‚เจธเฉ€ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจธเจญ เจคเฉ‹เจ‚ เจตเฉฑเจง เจ•เฉเจฐเจฟเจ†เจตเจพเจ‚ เจนเจจ, เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจธเจพเจฐเจฟเจ†เจ‚ เจฆเฉ‡ เจ…เฉฐเจค เจ‡เฉฑเจ•เฉ‹ เจนเจจ, เจ‡เจธเฉ‡ เจ•เจฐเจ•เฉ‡ เจ…เฉฐเจค เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ‰เจน เจ…เฉฐเจคเจฎ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจธเจจเฅค

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจธเจพเจจเฉ‚เฉฐ เจ•เฉ‹เจˆ เจœเจฒเจฆเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจนเจฐ เจ‡เฉฑเจ• เจธเจผเจฌเจฆ เจฒเจˆ เจจเจพ เจธเจฟเจฐเจซเจผ เจคเฉเจ•เจพเจ‚เจค เจนเจจ, เจธเจ—เฉ‹เจ‚ เจงเฉเจจเฉ€เจ†เจ‚ เจตเฉ€ เจนเจจ, เจœเฉ‹ เจ•เจˆ เจตเจพเจฐ เจคเฉเจ•เจพเจ‚เจค เจจเจพเจฒเฉ‹เจ‚ เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจฒเฉฑเจ—เจฆเฉ€เจ†เจ‚ เจนเจจ - เจ‡เจธ เจฒเจˆ เจ‰เจน เจธเฉฐเจ—เจ เจฟเจค เจนเจจ (เจซเฉเจฐเฉˆเจ‚เจš เจงเฉเจจ, เจฒเจพเจคเฉ€เจจเฉ€ เจเจธเฉ‹เจจเฉ‹ เจคเฉ‹เจ‚ - เจฎเฉˆเจ‚ เจงเฉเจจ เจตเจฟเฉฑเจš เจ†เจตเจพเจœเจผ เจ•เจฐเจฆเจพ เจนเจพเจ‚)เฅค

เจธเจพเจจเฉ‚เฉฐ เจธเฉฐเจธเจ•เจพเจฐ เจฎเจฟเจฒเจฆเจพ เจนเฉˆ

เจ‡เจน เจ‰เจน เจฅเจพเจ‚ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ เจฎเจœเจผเฉ‡ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ: เจ…เจธเฉ‹เจจเฉˆเจ‚เจธ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ URL 'เจคเฉ‡ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจจ, เจ…เจคเฉ‡ เจ‰เจธเฉ‡ เจชเฉฐเจจเฉ‡ 'เจคเฉ‡, เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจ•เฉ‡, เจ‡เฉฑเจ• HTTP เจฌเฉ‡เจจเจคเฉ€ เจญเฉ‡เจœ เจ•เฉ‡ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจœเจตเจพเจฌ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจเฅค เจฎเฉˆเจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจนเจฟ เจธเจ•เจฆเจพ เจนเจพเจ‚ wget'เจ•เฉ€ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจฌเจŸเจจ เจฆเจฌเจพเจ‰เจ‚เจฆเฉ‡ เจนเฉ‹? เจชเจฐ เจ•เฉ‹เจˆ เจคเจฐเฉ€เจ•เจพ เจจเจนเฉ€เจ‚เฅค เจฆเฉเฉฑเจ– เจฆเฉ€ เจ—เฉฑเจฒ เจนเฉˆเฅค

เจ‡เจน เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ เจ•เจฟ เจฒเจพเจˆเจจ เจตเจฟเฉฑเจš URL เจ•เจฟเจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจฌเจฆเจฒ เจฐเจฟเจนเจพ เจธเฉ€, เจฎเฉˆเจ‚ เจ…เจธเฉ‹เจจเฉˆเจ‚เจธเจพเจ‚ เจตเจฟเฉฑเจš เจธเจตเจฟเจš เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจœเฉ‹ เจ•เฉเจ เจธเฉ€ เจ‰เจธ เจจเฉ‚เฉฐ เจ•เจพเจชเฉ€ เจ•เฉ€เจคเจพ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจŸเฉˆเจฌ เจตเจฟเฉฑเจš เจชเฉ‡เจธเจŸ เจ•เฉ€เจคเจพ - เจฎเจœเจผเจฌเฉ‚เจค โ€‹โ€‹โ€‹โ€‹เจฐเจพเจˆเจฎเจœเจผ เจ–เฉเฉฑเจฒเฉเจน เจ—เจ. เจ…เจœเจฟเจนเจพ เจจเจนเฉ€เจ‚เฅค

เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจฎเฉˆเจ‚ เจธเฉ‹เจšเจฟเจ†, เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ เจ‡เจธ เจจเจพเจฒ เจ•เฉ‹เจˆ เจซเจฐเจ• เจจเจนเฉ€เจ‚ เจชเฉˆเจ‚เจฆเจพ เจ•เจฟ เจ•เฉ€ เจ‡เจธ เจจเฉ‚เฉฐ เจฌเฉ‡เจจเจคเฉ€ เจญเฉ‡เจœเจฃ เจตเจพเจฒเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจœเจพเจ‚ เจ•เฉ€ เจตเจฟเจ…เจ•เจคเฉ€ เจ‡เจธเจจเฉ‚เฉฐ เจนเฉฑเจฅ เจจเจพเจฒ เจŸเจพเจˆเจช เจ•เจฐเจฆเจพ เจนเฉˆ. เจคเจพเจ‚? เจ•เฉŒเจฃ เจœเจพเจฃเจฆเจพ เจนเฉˆ, เจ†เจ“ เจ‡เจธ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเฉ€เจ.

เจ•เจฟเฉฑเจฅเฉ‡ เจญเฉ‡เจœเจฃเจพ เจนเฉˆ? เจ•เฉ€ เจญเฉ‡เจœเจฃเจพ เจนเฉˆ? เจธเจฐเจตเจฐ IP เจจเฉ‚เฉฐ HTTP เจฌเฉ‡เจจเจคเฉ€, GET เจตเจฐเจ—เฉ€ เจ•เฉ‹เจˆ เจšเฉ€เจœเจผ เจนเฉˆ... เจซเจฟเจฐ เจ‡เฉฑเจฅเฉ‡ เจ•เฉเจ HTTP/1.1 เจนเฉˆ... เจธเจพเจจเฉ‚เฉฐ เจ‡เจน เจฆเฉ‡เจ–เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ•เจฟ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจ•เฉ€ เจ…เจคเฉ‡ เจ•เจฟเฉฑเจฅเฉ‡ เจญเฉ‡เจœเจฆเจพ เจนเฉˆเฅค เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเฉ‹ เจตเจพเจ‡เจฐเจธเจผเจพเจฐเจ•, เจ†เจตเจพเจœเจพเจˆ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เฉ‹:

0040 37 5d a3 84 27 e7 fb 13 6d 93 ed cd 56 04 9d 82 7]ยฃ.'รงรป.m.รญรV...
0050 32 7c fb 67 46 71 dd 36 4d 42 3d f3 62 1b e0 ad 2|รปgFqร6MB=รณb.ร .
0060 ef 87 be 05 6a f9 e1 01 41 fc 25 5b c0 77 d3 94 รฏ.ยพ.jรนรก.Aรผ%[ร€wร“.

เจ‰เจฎ... เจ•เฉ€? เจ“เจน เจนเจพเจ‚, เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ HTTPS เจนเฉˆเฅค เจฎเฉˆเจ‚ เจ•เฉ€ เจ•เจฐเจพเจ‚? เจ†เจชเจฃเฉ‡ เจ†เจช 'เจคเฉ‡ เจ‡เฉฑเจ• MITM เจนเจฎเจฒเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ‹? เจ†เจฆเจฐเจธเจผเจ• เจคเฉŒเจฐ 'เจคเฉ‡, เจชเฉ€เฉœเจค เจ–เฉเจฆ เจธเจพเจกเฉ€ เจฎเจฆเจฆ เจ•เจฐเฉ‡เจ—เจพเฅค

เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจฌเฉเจฐเจพเจ‰เจœเจผเจฐ เจจเฉ‚เฉฐ เจธเจฐเจซ เจ•เจฐเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจฎเฉˆเจจเฉ‚เฉฐ เจ†เจ–เจฐเจ•เจพเจฐ เจฌเฉ‡เจจเจคเฉ€ เจ–เฉเจฆ เจ…เจคเฉ‡ เจเจกเจฐเฉˆเจธเฉ€ เจฎเจฟเจฒเฉ€. เจœเจพเจฃเจพ:

เจŸเจฐเจฎเฉ€เจจเจฒ เจจเจพเจฒ เจ—เฉฑเจฒเจฌเจพเจค

telnet IP PORT
Trying IP...
Connected to IP.
Escape character is '^]'.
GET /rifma/%D0%BC%D0%B0%D1%82%D1%8C?mode=block&type=asn HTTP/1.1
Host: HOST
Accept-Language: en-US,en;q=0.5
X-Requested-With: XMLHttpRequest
Connection: close

HTTP/1.1 400 Bad Request
Server: nginx/1.8.0
Date: Sun, 03 Nov 2019 20:06:59 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 270
Connection: close

<html>
<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<center>The plain HTTP request was sent to HTTPS port</center>
<hr><center>nginx/1.8.0</center>
</body>
</html>
Connection closed by foreign host.

เจนเฉ‡. Hehehe. เจตเจพเจธเจคเจต เจตเจฟเฉฑเจš, เจ‡เฉฑเจ• HTTPS เจชเฉ‹เจฐเจŸ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจจเฉฐเจ—เฉ‡ HTTP เจฌเฉ‡เจจเจคเฉ€ เจญเฉ‡เจœเจฃ เจตเฉ‡เจฒเฉ‡ เจฎเฉˆเจ‚ เจ‡เจนเฉ€ เจ‰เจฎเฉ€เจฆ เจ•เฉ€เจคเฉ€ เจธเฉ€. เจ•เฉ€ เจธเจพเจจเฉ‚เฉฐ เจนเฉเจฃ เจเจจเจ•เฉเจฐเจฟเจชเจŸ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ? เจ‡เจน เจธเจญ RSA เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเจพเจฒ, เจซเจฟเจฐ SHA256 เจจเจพเจฒเฅค เจ•เจฟเจ‰เจ‚, เจ‰เฉฑเจฅเฉ‡ เจนเฉˆ OpenSSL เจ…เจœเจฟเจนเฉ€เจ†เจ‚ เจšเฉ€เจœเจผเจพเจ‚ เจฒเจˆ. เจ–เฉˆเจฐ, เจ…เจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจœเจพเจฃเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ•เฉ€ เจ•เจฐเจจเจพ เจนเฉˆ, เจ…เจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจฐเฉˆเจซเจฐเจฐ เจ…เจคเฉ‡ เจ•เฉ‚เจ•เฉ€ เจ–เฉ‡เจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจนเจŸเจพเจตเจพเจ‚เจ—เฉ‡ - เจฎเฉˆเจจเฉ‚เฉฐ เจฒเจ—เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‰เจน เจ‡เจธ เจฎเจพเจฎเจฒเฉ‡ เจจเฉ‚เฉฐ เจœเจผเจฟเจ†เจฆเจพ เจชเฉเจฐเจญเจพเจตเจฟเจค เจจเจนเฉ€เจ‚ เจ•เจฐเจจเจ—เฉ‡:

เจŸเจฐเจฎเฉ€เจจเจฒ เจจเจพเจฒ เจ—เฉฑเจฒเจฌเจพเจค

openssl s_client -connect IP:PORT
{ะ’ััะบะธะต ะบะปัŽั‡ะธ, ัะตั€ั‚ะธั„ะธะบะฐั‚ั‹}
GET /rifma/%D0%B7%D0%B4%D0%B5%D1%81%D1%8C?mode=block&type=asn HTTP/1.1
Host: HOST
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0
Accept: text/javascript,text/html,application/xml,text/xml,*/*
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
X-Requested-With: XMLHttpRequest
Connection: keep-alive

HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Status: 200 OK
Date: Sun, 03 Nov 2019 20:34:33 GMT
Set-Cookie: COOKIE
X-Powered-By: Phusion Passenger 5.0.16
Server: nginx/1.8.0 + Phusion Passenger 5.0.16
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Cache-Control: no-cache
Strict-Transport-Security: max-age=31536000
Content-Security-Policy: block-all-mixed-content
Content-Encoding: gzip

เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจฆเฉ€ เจฆเฉเจจเฉ€เจ†เจ‚ เจฌเจพเจฐเฉ‡ เจธเจฟเฉฑเจ–เจฃ เจตเจพเจฒเฉ‡ เจตเจฟเจฆเจฟเจ†เจฐเจฅเฉ€ เจฆเจพ เจฆเจฟเจฎเจพเจ— เจ•เฉ€ เจ•เจฐเจจ เจฆเฉ‡ เจธเจฎเจฐเฉฑเจฅ เจนเฉˆ?

เจ‡เจน เจ•เฉ€ เจนเฉˆ, เจธเจฐเจตเจฐ 'เจคเฉ‡ เจ—เจพเจฒเจพเจ‚? เจ–เฉˆเจฐ, เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจ‰เจนเจจเจพเจ‚ เจจเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ 200 เจ“เจ•เฉ‡ เจฆเจพ เจœเจตเจพเจฌ เจฆเจฟเฉฑเจคเจพ, เจœเจฟเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจ•เฉ‚เจ•เฉ€เจœเจผ เจ…เจคเฉ‡ เจฐเฉˆเจซเจฐเจฐ เจ•เฉเจ เจตเฉ€ เจชเฉเจฐเจญเจพเจตเจฟเจค เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡. เจ•เฉฐเจชเจฐเฉˆเจธเจผเจจ gzip เจนเฉˆ, เจชเจฐ เจ•เจพเจชเฉ€ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡, ASCII เจ…เฉฑเจ–เจฐ เจ•เจพเจชเฉ€ เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค เจฌเจฟเจฒเจ•เฉเจฒ, เจคเฉเจธเฉ€เจ‚ เจฒเจพเจˆเจจ เจจเฉ‚เฉฐ เจนเจŸเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจธเจตเฉ€เจ•เจพเจฐ เจ•เจฐเฉ‹-เจ‡เฉฐเจ•เฉ‹เจกเจฟเฉฐเจ—. เจธเจญ เจ•เฉเจ เจ เฉ€เจ• เจนเฉˆ - เจธเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• HTML เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจฎเจฟเจฒเจฆเจพ เจนเฉˆ, เจนเฉเจฃ เจธเฉฐเจœเฉ‹เจ—เจพเจ‚ เจฆเฉ‡ เจจเจพเจฒเฅค เจชเจฐ เจ‡เฉฑเจฅเฉ‡ เจฆเฉ‹ เจธเจตเจพเจฒ เจนเจจ: เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ“เจชเจจเจเจธเจเจธเจเจฒ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจšเจฒเจพเจ‰เจฃเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเจจเจพ เจนเฉˆ? เจ…เจคเฉ‡ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจชเฉœเฉเจนเจจเจพ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจœเจตเจพเจฌ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ…เจธเฉ€เจ‚ เจ“เจชเจจSSL โ€œเจธเจผเฉˆเฉฑเจฒโ€ เจตเจฟเฉฑเจš เจฐเจนเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚? เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจฆเฉ‚เจœเฉ‡ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉเจ เจฒเฉˆ เจ•เฉ‡ เจ† เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ เจชเจนเจฟเจฒเฉ‡ เจจเจพเจฒ...

เจ‡เจน เจšเฉฐเจ—เจพ เจนเฉˆ เจ•เจฟ เจ‰เฉฑเจฅเฉ‡ เจนเฉˆ เจนเจฌเจฐเจœเจฟเฉฑเจฅเฉ‡ เจฎเฉˆเจ‚ เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจฌเจพเจฐเฉ‡ เจชเฉœเฉเจนเจฟเจ† เจ‰เจฎเฉ€เจฆ เจ•เจฐเฉ‹, เจœเฉ‹ เจ‰เจนเจจเจพเจ‚ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจจเจพเจฒ เจ‡เฉฐเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‚เฉฐ เจธเจตเฉˆเจšเจฒเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจฎเจจเฉเฉฑเจ–เฉ€ เจชเจฐเจธเจชเจฐ เจชเฉเจฐเจญเจพเจต เจฆเฉ€ เจ‰เจฎเฉ€เจฆ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจŸเฉ€เจฎ เจฆเจพ เจนเฉ‹เจฃเจพ เจนเฉ‹เจฐ เจตเฉ€ เจ†เจ•เจฐเจธเจผเจ• เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจ†เจŸเฉ‹เจ‡เจชเฉˆเจ•เจŸ, เจชเฉˆเจฆเจพ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ เจ‰เจฎเฉ€เจฆ เจ•เจฐเฉ‹ เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค เจธเจ•เฉเจฐเจฟเจชเจŸเฅค เจ–เฉˆเจฐ, เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจ‡เจน เจธเจญ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‡เฉฑเจฅเฉ‡ เจฎเฉเจ•เฉฐเจฎเจฒ เจธเจ•เฉเจฐเจฟเจชเจŸ เจนเฉˆเฅค เจ•เฉ‡เจตเจฒ เจ‰เจน เจฌเจนเฉเจค เจตเฉฑเจกเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจธเจญ เจ‡เจธ เจฒเจˆ OpenSSL เจธเจฐเจŸเฉ€เจซเจฟเจ•เฉ‡เจŸ, เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ เจ‰เจฎเฉ€เจฆ เจ•เจฐเฉ‹ เจ‡เจธ เจธเจญ เจฆเฉ‡ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฆเฉ€ เจ‰เจกเฉ€เจ• เจนเฉˆเฅค เจ•เฉ€ เจธเจพเจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ? เจจเฉฐ. เจ…เจธเฉ€เจ‚ เจธเจฟเจฐเจซเจผ เจ†เจ–เจฐเฉ€ เจฒเจพเจˆเจจ เจฌเจฐเฉ‡เจ• 'r' เจจเฉ‚เฉฐ เจ›เฉฑเจก เจ•เฉ‡, เจชเฉ‚เจฐเฉ‡ เจชเจนเจฟเจฒเฉ‡ เจชเฉเจฐเฉ‹เจ‚เจชเจŸ เจจเฉ‚เฉฐ เจนเจŸเจพ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ…เจธเฉ€เจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพ-เจเจœเฉฐเจŸ เจจเฉ‚เฉฐ เจตเฉ€ เจนเจŸเจพ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจธเจพเจกเฉ€ เจฌเฉ‡เจจเจคเฉ€ เจคเฉ‹เจ‚ เจ–เฉ‡เจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเจตเฉ€เจ•เจพเจฐ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ - เจ‰เจน เจ•เจฟเจธเฉ‡ เจตเฉ€ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจชเฉเจฐเจญเจพเจตเจฟเจค เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจ‡เจธ เจฒเจˆ, เจ†เจ“ เจฒเจพเจ‚เจš เจ•เจฐเฉ€เจ. เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‡เจ† เจ—เจฟเจ† เจธเฉ€, เจชเจฐ HTML เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจ•เจฟเฉฑเจฅเฉ‡ เจนเฉˆ? เจฆเฉ€ เจ‰เจฎเฉ€เจฆ เจ•เจฐเฉ‹ เจ‡เจธ เจจเฉ‚เฉฐ เจ–เจพ เจฒเจฟเจ†. เจ‰เจธเจจเฉ‚เฉฐ เจฅเฉเฉฑเจ•เจฃ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจฐเฉฑเจ–เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

set results $expect_out(buffer)

เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ‡ เจ…เฉฐเจค เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ - เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจฆเจพ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฒเจฟเจ–เจฟเจ† เจœเจพเจตเฉ‡เจ—เจพ เจ‰เจฎเฉ€เจฆ เจ•เจฐเฉ‹'om เจ•เจฎเจพเจ‚เจก เจ…เจคเฉ‡ เจธเจ•เฉเจฐเฉ€เจจ 'เจคเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš, เจ•เฉเจ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚:

เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ€ เจ‰เจฎเฉ€เจฆ เจ•เจฐเฉ‹

#!/usr/bin/expect -f

set timeout -1
spawn openssl s_client -connect IP:PORT
match_max 100000
expect -exact "
---r
"
send -- "GET /rifma/%d0%b7%d0%b4%d0%b5%d1%81%d1%8c?mode=block&type=asn HTTP/1.1rHost: HOSTrAccept-Language: en-US,en;q=0.5rX-Requested-With: XMLHttpRequestrConnection: close"
expect -exact "GET /rifma/%d0%b7%d0%b4%d0%b5%d1%81%d1%8c?mode=block&type=asn HTTP/1.1r
Host: HOSTr
Accept-Language: en-US,en;q=0.5r
X-Requested-With: XMLHttpRequestr
Connection: close"
send -- "r"
set results $expect_out(buffer)
expect -exact "r
"
send -- "r"
expect eof

เจชเจฐ เจ‡เจน เจธเจญ เจ•เฉเจ เจจเจนเฉ€เจ‚ เจนเฉˆ! เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจตเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจธเจพเจฐเฉ€เจ†เจ‚ เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจตเจฟเฉฑเจš เจฌเฉ‡เจจเจคเฉ€ URL เจธเจฅเจฟเจฐ เจธเฉ€, เจชเจฐ เจ‡เจน เจ‰เจน URL เจนเฉˆ เจœเฉ‹ เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐ เจนเฉˆ เจœเจฟเจธ เจฒเจˆ เจธเจผเจฌเจฆ เจ…เจจเฉเจธเฉฐเจงเจพเจจ เจจเจพเจฒ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจ…เจคเฉ‡ เจ‡เจธ เจฒเจˆ เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ เจ•เจฟ เจ…เจธเฉ€เจ‚ ASCII เจตเจฟเฉฑเจš "%d0%b7%d0%b4%d0%b5%d1%81%d1%8c" เจœเจพเจ‚ UTF-8 เจตเจฟเฉฑเจš "เจ‡เฉฑเจฅเฉ‡" เจธเจผเจฌเจฆ เจฆเฉ€ เจฒเจ—เจพเจคเจพเจฐ เจ–เฉ‹เจœ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค เจฎเฉˆเจ‚ เจ•เฉ€ เจ•เจฐเจพเจ‚? เจฌเฉ‡เจธเจผเฉฑเจ•, เจนเจฐ เจตเจพเจฐ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจคเจฟเจ†เจฐ เจ•เจฐเฉ‹, เจฆเฉ‹เจธเจคเฉ‹! เจนเฉ‹เจฐ เจจเจนเฉ€เจ‚ เจ†เจŸเฉ‹เจ‡เจชเฉˆเจ•เจŸ'เจ“เจฎ, เจ…เจคเฉ‡ เจฎเจฆเจฆ เจจเจพเจฒ เจˆเจ•เฉ‹, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจธเจพเจกเฉ‡ เจจเจตเฉ‡เจ‚ เจตเจฟเฉฑเจš, เจธเจผเจฌเจฆ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ เจ•เฉเจ เจจเจนเฉ€เจ‚ เจฌเจฆเจฒเจฆเจพ. เจ…เจคเฉ‡ เจจเจตเฉ€เจ‚ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจคเฉฑเจ• เจœเฉ€เจ“: เจ…เจธเฉ€เจ‚ เจธเจฟเจฐเจฟเจฒเจฟเจ• เจคเฉ‹เจ‚ URL เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจผเจฌเจฆ เจจเฉ‚เฉฐ เจธเจฎเจเจฆเจพเจฐเฉ€ เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจจเฉเจตเจพเจฆ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚? เจŸเจฐเจฎเฉ€เจจเจฒ เจฒเจˆ เจตเฉ€ เจ•เฉเจ เจ–เจพเจธ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ เฉ€เจ• เจนเฉˆ, เจ‡เจน เจ เฉ€เจ• เจนเฉˆ, เจ…เจธเฉ€เจ‚ เจ‡เจน เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚, เจ เฉ€เจ• เจนเฉˆ? เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ:

เจฆเฉ‡เจ–เฉ‹ เจฎเฉˆเจ‚ เจ•เฉ€ เจ•เจฐ เจธเจ•เจฆเจพ เจนเจพเจ‚!

function furl {
furl=$(echo "$word" | sed 's:ะ:%d0%90:g;s:ะ‘:%d0%91:g;s:ะ’:%d0%92:g;s:ะ“:%d0%93:g;s:ะ”:%d0%94:g;s:ะ•:%d0%95:g;s:ะ–:%d0%96:g;s:ะ—:%d0%97:g;s:ะ˜:%d0%98:g;s:ะ™:%d0%99:g;s:ะš:%d0%9a:g;s:ะ›:%d0%9b:g;s:ะœ:%d0%9c:g;s:ะ:%d0%9d:g;s:ะž:%d0%9e:g;s:ะŸ:%d0%9f:g;s:ะ :%d0%a0:g;s:ะก:%d0%a1:g;s:ะข:%d0%a2:g;s:ะฃ:%d0%a3:g;s:ะค:%d0%a4:g;s:ะฅ:%d0%a5:g;s:ะฆ:%d0%a6:g;s:ะง:%d0%a7:g;s:ะจ:%d0%a8:g;s:ะฉ:%d0%a9:g;s:ะช:%d0%aa:g;s:ะซ:%d0%ab:g;s:ะฌ:%d0%ac:g;s:ะญ:%d0%ad:g;s:ะฎ:%d0%ae:g;s:ะฏ:%d0%af:g;s:ะฐ:%d0%b0:g;s:ะฑ:%d0%b1:g;s:ะฒ:%d0%b2:g;s:ะณ:%d0%b3:g;s:ะด:%d0%b4:g;s:ะต:%d0%b5:g;s:ะถ:%d0%b6:g;s:ะท:%d0%b7:g;s:ะธ:%d0%b8:g;s:ะน:%d0%b9:g;s:ะบ:%d0%ba:g;s:ะป:%d0%bb:g;s:ะผ:%d0%bc:g;s:ะฝ:%d0%bd:g;s:ะพ:%d0%be:g;s:ะฟ:%d0%bf:g;s:ั€:%d1%80:g;s:ั:%d1%81:g;s:ั‚:%d1%82:g;s:ัƒ:%d1%83:g;s:ั„:%d1%84:g;s:ั…:%d1%85:g;s:ั†:%d1%86:g;s:ั‡:%d1%87:g;s:ัˆ:%d1%88:g;s:ั‰:%d1%89:g;s:ัŠ:%d1%8a:g;s:ั‹:%d1%8b:g;s:ัŒ:%d1%8c:g;s:ั:%d1%8d:g;s:ัŽ:%d1%8e:g;s:ั:%d1%8f:g;s:ั‘:%d1%91:g;s:ะ:%d0%81:g')}

เจ•เฉเฉฑเจฒ เจฎเจฟเจฒเจพ เจ•เฉ‡, เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจนเฉˆ เจœเฉ‹ เจ‡เฉฑเจ• เจธเจผเจฌเจฆ เจจเฉ‚เฉฐ ASCII เจŸเฉˆเจ•เจธเจŸ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฆเฉ€ เจนเฉˆ, เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจธเจ•เฉเจฐเจฟเจชเจŸ เจคเจฟเจ†เจฐ เจ•เจฐเจฆเฉ€ เจนเฉˆ เจœเฉ‹ OpenSSL เจฆเฉเจ†เจฐเจพ เจธเจฐเจตเจฐ เจคเฉ‹เจ‚ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจธเจพเจˆเจŸ เจชเฉฐเจจเฉ‡ เจฆเฉ€ เจฌเฉ‡เจจเจคเฉ€ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจ…เจคเฉ‡ เจซเจฟเจฐ เจ…เจธเฉ€เจ‚ เจ†เจ–เจฐเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ‡ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจฐเฉ€เจกเจพเจ‡เจฐเฉˆเจ•เจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡, เจชเฉเจฐเจพเจฃเฉ‡ เจขเฉฐเจ— เจจเจพเจฒ, เจ‡เจธเจจเฉ‚เฉฐ เจชเจพเจธ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ "เจซเจฟเจฒเจŸเจฐ" เจตเจพเจงเฉ‚ เจตเจฐเจ— เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจฒเจฟเจ–เฉ‹เฅค

เจ•เจˆเจ†เจ‚ เจฆเจพ เจฒเจพเจ‚เจ˜เจพเฅค เจธเจฟเฉฑเจŸเจพ

เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจ‡เจน เจ‰เจนเฉ€ เจนเฉˆ เจœเฉ‹ เจธเจญ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจฆเจพ เจ•เจพเจฐเจจ เจฌเจฃเจฆเจพ เจนเฉˆ. เจ…เจธเฉ€เจ‚ เจฆเฉ‹ เจธเจผเจฌเจฆเจพเจ‚ เจฒเจˆ เจ‰เจชเจฐเฉ‹เจ•เจค เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจซเจฟเจฐ เจฆเฉ‹ เจธเฉ‚เจšเฉ€เจ†เจ‚ เจคเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจนเจฐเฉ‡เจ• เจธเจผเจฌเจฆ เจฆเฉ€ เจคเฉเจฒเจจเจพ เจนเจฐเฉ‡เจ• เจจเจพเจฒ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจ•เฉ‹เจˆ เจฎเฉ‡เจฒ เจฎเจฟเจฒเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจนเฉเจฃ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจนเฉˆ เจœเฉ‹ เจฆเฉ‹ เจธเจผเจฌเจฆเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจจเจชเฉเจŸ เจตเจœเฉ‹เจ‚ เจฒเฉˆเจ‚เจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจธเจผเจฌเจฆเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉ‚เจšเฉ€ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจฆเฉ€ เจนเฉˆ เจœเฉ‹ เจฆเฉ‹เจตเจพเจ‚ เจจเจพเจฒ เจคเฉเจ•เจฌเฉฐเจฆเฉ€ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจ…เจคเฉ‡ เจ‡เฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ เจธเฉฐเจœเฉ‹เจ—เจพเจ‚ เจจเฉ‚เฉฐ เจตเฉ€ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ, เจ…เจคเฉ‡ เจ‡เจน เจธเจญ เจšเจพเจฐ เจŸเฉˆเจฌเจพเจ‚ เจตเจฟเฉฑเจš เจนเฉฑเจฅเฉ€เจ‚ เจธเจตเจฟเจš เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจ…เจคเฉ‡ "เจ…เฉฑเจ–เจพเจ‚ เจฆเฉเจ†เจฐเจพ" เจธเจผเจฌเจฆเจพเจ‚ เจจเฉ‚เฉฐ เจฏเจพเจฆ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ - เจธเจญ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เฉ€เจคเจพ เจ—เจฟเจ†, เจฒเฉ‡เจ–เจพ เจ•เฉ€เจคเจพ เจ—เจฟเจ†เฅค เจฒเจˆ เจ…เจคเฉ‡ เจธเจตเฉˆเจšเจฒเจฟเจค เจคเฉŒเจฐ 'เจคเฉ‡ เจฐเฉฑเจฆ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ†เฅค เจธเจผเจพเจจเจฆเจพเจฐ.

เจ‡เจธ เจชเฉเจฐเจ•เจพเจธเจผเจจ เจฆเจพ เจฎเจ•เจธเจฆ เจ‡เจน เจฆเจฐเจธเจพเจ‰เจฃเจพ เจธเฉ€ เจ•เจฟ เจœเฉ‡เจ•เจฐ เจ•เจฟเจธเฉ‡ เจตเจฟเจ…เจ•เจคเฉ€ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจšเฉ€เจœเจผ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจคเจพเจ‚ เจ‰เจน เจ•เจฟเจธเฉ‡ เจตเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ•เจฐเฉ‡เจ—เจพเฅค เจฌเจนเฉเจค เจฌเฉ‡เจ…เจธเจฐ, เจŸเฉ‡เจขเฉ‡, เจกเจฐเจพเจ‰เจฃเฉ‡, เจชเจฐ เจ‡เจน เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เจพ.

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹