perl根據ip位址獲取mac位址

2021-08-31 09:11:27 字數 737 閱讀 5073

有時候需要根據一台主機的ip位址獲取其mac位址,這是可以實現的,但這個ip位址必須是同乙個乙太網內的ip位址。

在perl的模組中net::arp可以實現這個功能。但是它的arp_lookup函式只能從本機的arp快取表中取「被查詢ip」的mac,如果恰恰有,能取到,沒問題。但是如果arp快取沒有「被查詢ip」,那麼會得到「unknow」或者「00:00:00:00:00:00」。

解決方法是先ping一下「被查詢ip」,然後用arp_lookup函式去arp快取取其mac。

下面有個例子,是perl寫的cgi程式。

#!/usr/bin/perl

use net::arp;

print "content-type:text/html;charset=utf-8\n\n";

read stdin, my $buffer, $env;

my ($key,$ip)=split /=/,$buffer; # 得到了ip位址

`ping $ip -c 1`; # 系統呼叫,ping 被查詢ip 1 次

my $mac=net::arp::arp_lookup("eth0",$ip); # 從arp快取中取出mac

print $mac;

print <

end;

根據網域名稱獲取ip位址

1如何查詢 網域名稱對應的ip位址 在電腦左下角搜尋cmd 在命令提示符中輸入 ping www.pm25.in 在電腦左下角搜尋執行,輸入cmd 在命令提示符中輸入 ping www.pm25.in 得到ip 106.187.49.54 2如何檢查獲取的ip是否正確?c windows syste...

通過IP獲取MAC位址

option explicit private declare function openprocess lib kernel32 byval dwdesiredaccess as long,byval binherithandle as long,byval dwprocessid as long...

android獲取Mac位址和IP位址

獲取mac位址實際專案中測試了如下幾種方法 1 裝置開通wifi連線,獲取到網絡卡的mac位址 但是不開通wifi,這種方法獲取不到mac位址,這種方法也是網路上使用的最多的方法 根據wifi資訊獲取本地mac public static string getlocalmacaddressfromw...