2012-09-06 67 views
2

我一直在尋找相當長的一段時間,似乎無法在C#中找到有效的DHCP客戶端實現示例。我是品牌spankin'網絡編程的新手,但我正在做一些研究,需要我編寫手動DHCP客戶端,並在沒有DHCP服務器的情況下實施Auto-IP。什麼API可用於發送DHCP發現,請求和確認?

任何代碼示例,或內置的C#類的名稱,可以幫助我與此讚賞。

+1

我不知道該怎麼做在C#中,但你應該查找「原始套接字」。 –

+0

所以你最終得到了什麼? – Gobliins

+0

我最終意識到微軟的操作系統不允許我們進行低層次的調用,將我們的IP廣播給DHCP。操作系統爲我們處理,我們只是問它我們的IP是什麼。手動執行只能在其他操作系統上完成。至少這是我目前對它的理解。再一次,我對與網絡有關的所有事情都很陌生。我在某種程度上能夠避免過去15年的編程網絡:-) – Curtis

回答

1

你不會去找那個;原因是「安全」。

常規的網絡API允許您處理Level-3或更高,但是 DHCP客戶端必須能夠處理Level-2;即用於在DHCP DISCOVERY數據包上廣播到MAC FF:FF:FF:FF:FF:FF

出於安全原因,Microsoft今天不允許您在如此低的級別製作以太網包。

您不能使用原始套接字;讀到這裏爲什麼:

侷限在原始套接字

http://msdn.microsoft.com/en-us/library/ms740548(v=vs.85).aspx

+0

好的,那麼我的原始問題的答案是什麼? – Curtis

+1

我想我的答案很清楚。恐怕你不會找到你要找的東西,因爲它不存在... 忘記找到任何C#/ C++類解決你的DHCP客戶端需求從用戶域 – Pat

+0

啊..這也許可以解釋爲什麼我有一直無法找到如何做到這一點。它不能完成...但是,我猜測我可能是一個DHCP服務器。我的猜測是微軟爲你發出一個DHCP請求,但你不能以編程方式進行。但是,我可能會聽取這樣的請求,然後回覆請求它的IP。 – Curtis

0

您可以在PC上安裝的驅動程序pccap,並使用該API發送原始數據包