問題:
在Go 中可以使用原始套接字來設定DHCP 封包的自訂IP 來源位址?
答案:
是的,需要原始套接字來修改 DHCP 封包的 IP 來源位址。
警告:操作原始資料包可能會產生嚴重的安全隱患。使用 root 權限或 CAP_NET_RAW 功能運行應用程式是必要的。
Go 中的標準網路庫由於其特殊性質和潛在的 API 更改而不支援原始套接字。但是,go.net 子儲存庫為此目的提供了 ipv4 套件。
要操作 DHCP 封包,請依照下列步驟操作:
範例:
<code class="go">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 { ... } } }</code>
以上是Go中的Raw Sockets可以用來修改DHCP封包來源IP位址嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!