pythonで簡単なpingを作成しました。 RFC792にICMPの仕様が書いてあります。 RFCによるとpingはEcho MessageとEcho Reply Messageの2つを使用しているっぽいです。 このようなパケットの構成になっていて、タイプに8をセットすると Echo Message、0をセットするとEcho Reply Messageになるようです。 Cのサンプルソースや色々インターネットに出回っていますが、 ここではシンプルに手で作成してみます。 まず、タイプは0x08か0x00です。 コードは使用していないようなので0x00です。 チェックサムはRFCを読んだりしていても、いまいち理解できず、 ここを参考にしました。 http://d.hatena.ne.jp/kingkunikuni/20100116/1263631169 ICMPパケット全体を16bitずつで積
