iT邦幫忙

0

用C#如何抓取遠端IP得知MACAddress

有一到練習想請各位幫幫忙,如何透過IP 位置找到以下資訊
1.電腦名稱
2.IP位置
3.網路卡的地址(MacAddress)
以下範例可以透過IP顯示遠端電腦的名稱和IP位置,那我想請教一下如何抓到MacAddress 資料,謝謝大家

 IPHostEntry objEntry = Dns.GetHostEntry("192.168.1.1");
 IPAddress[] arrAddress = objEntry.AddressList;
 Console.WriteLine(objEntry.HostName.ToString());
 Console.WriteLine(arrAddress[0].ToString());
 Console.ReadLine();
尼克 iT邦高手 1 級 ‧ 2020-02-04 17:26:43 檢舉
https://www.google.com/search?q=c%23+get+mac+address&rlz=1C1GCEV_zh-TW&oq=c%23+get+mac+&aqs=chrome.1.69i57j0l6j69i58.7128j0j1&sourceid=chrome&ie=UTF-8

2 個回答

0
舜~
iT邦高手 1 級 ‧ 2020-02-04 20:00:52

如何透過IP 位置找到以下資訊
1.電腦名稱

主機名稱? IPHostEntry 類別

2.IP位置

略~(您的條件已知ip)

3.網路卡的地址(MacAddress)

可參考這篇,有超多種方法,下方也有網友提到如果是虛擬機怎麼抓到比較好的地址
https://stackoverflow.com/questions/850650/reliable-method-to-get-machines-mac-address-in-c-sharp/51821927#51821927

1
nansen
iT邦新手 3 級 ‧ 2020-02-05 09:05:26

如果目標是遠端主機不是本機
1.跨網際網路沒辦法
2.區域網路內跨網段經過路由router就不行,同網段可以raw socket與ARP協定取得

看更多先前的回應...收起先前的回應...
u8810239 iT邦新手 5 級 ‧ 2020-02-17 16:20:54 檢舉

我特地去上網找了一些資料,發現到它們是抓取登記在某台電腦中的網際網路網址及實體位址,這樣子發現到很多IP,目前只想抓取連到區網192.168.1.1 的MACADDRESS,目前對於這塊完全不熟,再麻煩各位謝謝大家

參考國外範例
台灣範例

nansen iT邦新手 3 級 ‧ 2020-02-18 10:32:40 檢舉

先釐清這麼做的目的與範圍,超過技術限制單靠client端是做不到的
1.查詢的目標區域網路有多大 (例如1個class C 255台電腦)
2.查詢發起的電腦是否位於這個區域網路內的同網段(subnet)

如果無法瞭解上述兩個問題,建議先讀一下 OSI網路七層或者網路概論比較好

u8810239 iT邦新手 5 級 ‧ 2020-02-20 09:08:28 檢舉

阿咧~需要這麼複雜,我只是單純透過程式碼想知道某個IP的MACADDRESS,目前是同一個網段,謝謝您。

u8810239 iT邦新手 5 級 ‧ 2020-02-20 09:10:10 檢舉

阿咧~需要這麼複雜,我只是單純透過程式碼想知道某個IP的MACADDRESS,目前是同一個網段,謝謝你

nansen iT邦新手 3 級 ‧ 2020-02-20 09:32:41 檢舉

同一網段最簡單的做法
1.使用執行外部命令ping整個網段的每個IP
2.然後使用arp命令輸出的結果就有ip與mac了

u8810239 iT邦新手 5 級 ‧ 2020-02-21 13:59:57 檢舉

目前測試結果arp找不到項目,上網找不到任何資料可以排除
想請教一下,這個部分該怎麼做呢?
謝謝您

我要發表回答

立即登入回答