UDP のチェックサムを見つけるにはどうすればよいですか? 私の IP は 192.168.1.59 で、ポート番号は 30002 です
接続されているマシンは 192.168.1.179 で、ポート番号は 30000 です
次に、チェックサムを見つける方法
ぐ~~(???)b 分かりません
チェクサムの取得方法とバイト長が必要ですか?やはりバイト長が必要なのでしょうか?バイト長が 66 の場合、このチェックサムを取得するにはどうすればよいでしょうか?
これは通常、システムレベルまたはネットワークカード上で行われますが、PHP で行うのは難しいですか?
そうですね、PHP にはこれに関する多くの機能はなく、チェックサムと送信されたデータはすべて加算され、XOR されてから合計されます。 。何。でもどれを追加すればいいのか分からない?
C 言語のコードを見つけて移植するだけです
C 言語のコードを見つけて移植するだけです
例はありますか?重要な点は、php の 16 進数を XOR して合計する前に、まず 2 進数に変換する必要があるということです。
関連する関数はすべて PHP が提供します
分からない部分は投稿してください
$FileData=array();
///8 バイトのヘッダー
$FileData[0]=0x75;
$FileData[ 1]= 0x30;
$FileData[2]=0x32;
$FileData[5]=0x20;チェックサム
$a=$FileData[0]*256+$FileData[1]
$b=$FileData[2]*256+$FileData[3];
$c =$FileData[4]; *256+$FileData[5];
$d=($a+$b+$c);
$FileData[6]=~(($d>>8)&0xFF); ~($d&0xFF);
//----------
///16バイトデータ
//識別番号:01020304
$FileData[ 8]=0x01;
$FileData[10]=0x03;
//操作コマンド: 0x00000001
$FileData[12]=0x00; $FileData[13]=0x00;
$FileData[15]=0x02;
//演算結果: 0x00000000
$FileData[17]= 0x00;
$FileData[19]=0x01;
$FileData[20]=0x00;
$FileData[22]= 0x00;
$FileData[23]=0x00;
//----------
///8 バイト修正チェックサム
$FileData[24 ]=$FileData[0]^$FileData[8]^$FileData[16];
$FileData[25]=$FileData[1]^$FileData[9]^$FileData[17 ]; ]=$FileData[2]^$FileData[10]^$FileData[18];
$FileData[27]=$FileData[3]^$FileData[11]^$FileData[19 ]; ]=$FileData[4]^$FileData[12]^$FileData[20];
$FileData[29]=$FileData[5]^$FileData[13]^$FileData[21 ]; ]=$FileData[6]^$FileData[14]^$FileData[22];
$FileData[31]=$FileData[7]^$FileData[23 ]; sizeof( $FileData );
foreach($FileData as $arr)
{
$str.= $arr;
echo $str; //$str のデータ
UDP メッセージ
識別番号 操作コマンド 操作データ (結果) 予約済み
4 バイト 4 バイト 4 バイト 4 バイト
だから今、私はそのチェックサムを取得したいだけです
私は上記です 書き込まれたチェックサムは間違っており、出力データも間違っています
PHP は関連する関数をすべて提供しています
分からない部分は投稿してください
IP を 16 進数に変換するにはどうすればよいですか?私もやり方が分かりません