3

golang で tcp syn ポート スキャナーを作成しようとしています。C バージョンで解決策を見つけました: http://www.binarytides.com/tcp-syn-portscan-in-c-with-linux-sockets/

goで実装したいのですが、golangで次のようなtcpヘッダーを送信するにはどうすればよいですか:

//TCP Header
    tcph->source = htons ( source_port );
    tcph->dest = htons (80);
    tcph->seq = htonl(1105024978);
    tcph->ack_seq = 0;
    tcph->doff = sizeof(struct tcphdr) / 4;      //Size of tcp header
    tcph->fin=0;
    tcph->syn=1;
    tcph->rst=0;
    tcph->psh=0;
    tcph->ack=0;
    tcph->urg=0;
    tcph->window = htons ( 14600 );  // maximum allowed window size
    tcph->check = 0; //if you set a checksum to zero, your kernel's IP stack should fill in the correct checksum during transmission
    tcph->urg_ptr = 0;

syscall または cgo を使用する必要がありますか? 誰かが私を助けてくれたら本当にありがたいです。

4

1 に答える 1

0

syscall を使用したいと思うでしょう。ただし、syscall パッケージは必ずしも異なるオペレーティング システム間で移植可能であるとは限らないため、それが重要な場合は、OS バージョンごとに記述し、file_os.go 命名スキームを使用して OS 固有のコードを保持する必要があります。

于 2013-12-12T04:11:32.637 に答える