質問:
Go で Raw ソケットを使用して設定できますかDHCP のカスタム IP 送信元アドレスパケット?
答え:
はい、DHCP パケットの IP 送信元アドレスを変更するには生のソケットが必要です。
警告: raw パケットを操作すると、セキュリティに重大な影響を与える可能性があります。 root 権限または CAP_NET_RAW 機能でアプリケーションを実行する必要があります。
Go の標準ネット ライブラリは、その特殊な性質と API の変更の可能性のため、Raw ソケットをサポートしていません。ただし、go.net サブリポジトリは、この目的のために ipv4 パッケージを提供します。
DHCP パケットを操作するには、次の手順に従ってください:
例:
import "code.google.com/p/go.net/ipv4"
func main() {
conn, err := ipv4.NewRawConn("udp")
defer conn.Close()
buf := make([]byte, 65536)
for {
hdr, payload, _, err := conn.ReadFrom(buf)
if err != nil { ... }
hdr.ID = 0
hdr.Checksum = 0
hdr.Dst = ...
if err := conn.WriteTo(hdr, payload, nil); err != nil { ... }
}
}
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3