mac地址獲取伺服器
㈠ 知道MAC地址怎麼獲得IP地址
區域網管理中經常遇到已知某個MAC地址,要查詢其IP地址的情況,有如下幾種方法:
方法一:用ARP -A 查詢
這種方法只能查到與本機通訊過(20分鍾內)的主機MAC地址和IP地址。可在遠程主機所屬網段中的任一台主機上運行此命令,這樣可查出IP欺騙類病毒的主機。
方法二:用專用軟體查,如nbtscan
命令方式是:nbtscan -r 網路號/掩碼位,這種方法可查詢某網段的所有IP與MAC對應關系,但裝有防火牆的主機則禁止查詢。
方法三:
如果所連交換機有網管功能,可用ARP SHOW 命令顯示交換機的arp緩存信息,這種方式基本可查詢所有的IP 與MAC地址,但只有網管才有這個許可權。
方法四:
用sniffer類的嗅探軟體抓包分析,packet中一般都含用IP地址與MAC地址。
方法五:
用solarwinds類軟體中的MAC ADDRESS DISCOVERY查詢,但這個工具好象不能跨網段查詢。
㈡ 如何獲取客戶端IP和MAC地址,我獲取的是伺服器的,C
MAC地址是2層的東西,過了3層路由器後源MAC與目的MAC就會跟著所經過的路由器地址改變,如果在客戶端沒有任何響應進程將MAC地址信息放在應用層,理論上你不可能獲得。能非常容易的獲得ip地址、mac地址跟主機名應該是蠻危險的事情。你要真想問,你可以去黑客論壇找找吧。。。
㈢ 如何獲取本地和遠程主機的IP及MAC地址
向大家介紹一下我們將如何獲得一台主機的IP地址。在Win32 API中我們可以使用NetWork API完成這項工作,但是在.Net平台下我們應當如何做呢?其實操作方法與API差不多,只是大家要理解一下Namespace與Class。本站這方面的文章很多,關於Namespace與Class的內容就不介紹了。
.Net平台存在System.Net命名空間,其中的DNS類,提供了一些方法可以獲取伺服器的服務名或者是IP地址。DNS是一個靜態類,所以它能夠直接創建類實例。閑話少說,我們來看具體的程序:
namespace NKUtilities
{
using System;
using System.Net;
public class DNSUtility
{
public static int Main (string [] args)
{
String strHostName = new String ("");
if (args.Length == 0)
{
// 獲得本地的IP地址
//首先獲了本地機的主機名
strHostName = DNS.GetHostName ();
Console.WriteLine ("Local Machine''s Host Name: " + strHostName);
}
else
{
strHostName = args[0];
}
// 接著使用主機名,獲取IP地址列表
// 一台主機可能不只一個IP哦,不要被某些人誤導了,呵呵,想想以前的163與169就知道了
IPHostEntry ipEntry = DNS.GetHostByName (strHostName);
IPAddress [] addr = ipEntry.AddressList;
for (int i = 0; i < addr.Length; i++)
{
Console.WriteLine ("IP Address {0}: {1} ", i, addr[i].ToString ());
}
return 0;
}
}
}
如果你想獲得主機名,你可以使用不帶參數的GetHostName方法,接著使用這個主機名作為參數交給GetHostByName方法,以獲取IPAddress列表。最後是輸出列表中的IP地址。
C#編程之 如何獲取本地和遠程主機的IP及MAC地址
利用dns類和WMI規范獲取IP及MAC地址
在C#編程中,要獲取主機名和主機IP地址,是比較容易的.它提供的Dns類,可以輕松的取得主機名和IP地址.
示例:
string strHostName = Dns.GetHostName(); //得到本機的主機名
IPHostEntry ipEntry = Dns.GetHostByName(strHostName); //取得本機IP
string strAddr = ipEntry.AddressList[0].ToString(); //假設本地主機為單網卡
在這段代碼中使用了兩個類,一個是Dns類,另一個為IPHostEntry類,二者都存在於命名空間System.Net中.
Dns類主要是從域名系統(DNS)中檢索關於特定主機的信息,上面的代碼第一行就從本地的DNS中檢索出本地主機名.
IPHostEntry類則將一個域名系統或主機名與一組IP地址相關聯,它與DNS類一起使用,用於獲取主機的IP地址組.
要獲取遠程主機的IP地址,其方法也是大同小異.
在獲取了IP地址後,如果還需要取得網卡的MAC地址,就需要進一步探究了.
這里又分兩種情況,一是本機MAC地址,二是遠程主機MAC地址.二者的獲取是完全不同的.
在獲取本機的MAC地址時,可以使用WMI規范,通過SELECT語句提取MAC地址.在.NET框架中,WMI規范的實現定義在System.Management命名空間中.
ManagementObjectSearcher類用於根據指定的查詢檢索管理對象的集合
ManagementObjectCollection類為管理對象的集合,下例中由檢索對象返回管理對象集合賦值給它.
示例:
ManagementObjectSearcher query =new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration") ;
ManagementObjectCollection queryCollection = query.Get();
foreach( ManagementObject mo in queryCollection )
{
if(mo["IPEnabled"].ToString() == "True")
mac = mo["MacAddress"].ToString();
}
獲取遠程主機的MAC地址時,需要借用API函數SendARP.該函數使用ARP協議,向目的主機發送ARP包,利用返回並存儲在高速緩存中的IP和MAC地址對,從而獲取遠程主機的MAC地址.
示例:
Int32 ldest= inet_addr(remoteIP); //目的ip
Int32 lhost= inet_addr(localIP); //本地ip
try
{
Int64 macinfo = new Int64();
Int32 len = 6;
int res = SendARP(ldest,0, ref macinfo, ref len); //發送ARP包
return Convert.ToString(macinfo,16);
}
catch(Exception err)
{
Console.WriteLine("Error:{0}",err.Message);
}
return 0.ToString();
但使用該方式獲取MAC時有一個很大的限制,就是只能獲取同網段的遠程主機MAC地址.因為在標准網路協議下,ARP包是不能跨網段傳輸的,故想通過ARP協議是無法查詢跨網段設備MAC地址的。
示常式序:
using System.Net;
using System;
using System.Management;
using System.Runtime.InteropServices;
public class getIP
{
[DllImport("Iphlpapi.dll")]
private static extern int SendARP(Int32 dest,Int32 host,ref Int64 mac,ref Int32 length);
[DllImport("Ws2_32.dll")]
private static extern Int32 inet_addr(string ip);
//獲取本機的IP
public string getLocalIP()
{
string strHostName = Dns.GetHostName(); //得到本機的主機名
IPHostEntry ipEntry = Dns.GetHostByName(strHostName); //取得本機IP
string strAddr = ipEntry.AddressList[0].ToString();
return(strAddr);
}
//獲取本機的MAC
public string getLocalMac()
{
string mac = null;
ManagementObjectSearcher query =new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration") ;
ManagementObjectCollection queryCollection = query.Get();
foreach( ManagementObject mo in queryCollection )
{
if(mo["IPEnabled"].ToString() == "True")
mac = mo["MacAddress"].ToString();
}
return(mac);
}
//獲取遠程主機IP
public string[] getRemoteIP(string RemoteHostName)
{
IPHostEntry ipEntry = Dns.GetHostByName(RemoteHostName);
IPAddress[] IpAddr = ipEntry.AddressList;
string[] strAddr = new string[IpAddr.Length];
for (int i=0;i {
strAddr[i] = IpAddr[i].ToString();
}
return(strAddr);
}
//獲取遠程主機MAC
public string getRemoteMac(string localIP, string remoteIP)
{
Int32 ldest= inet_addr(remoteIP); //目的ip
Int32 lhost= inet_addr(localIP); //本地ip
try
{
Int64 macinfo = new Int64();
Int32 len = 6;
int res = SendARP(ldest,0, ref macinfo, ref len);
return Convert.ToString(macinfo,16);
}
catch(Exception err)
{
Console.WriteLine("Error:{0}",err.Message);
}
return 0.ToString();
}
public static void Main(string[] args)
{
getIP gi = new getIP();
Console.WriteLine("本地網卡信息:");
Console.WriteLine(gi.getLocalIP() + " - " + gi.getLocalMac());
Console.WriteLine("/n/r遠程網卡信息:");
string[] temp = gi.getRemoteIP("scmobile-tj2");
for(int i=0;i {
Console.WriteLine(temp[i]);
}
Console.WriteLine(gi.getRemoteMac("192.168.0.3","192.168.0.1"));
}
}
可以用.Net的DNS類來獲取一個主機名或一個給定主機的IP地址。要想在程序中使用DNS類,就需要包含System.Net:
Include System.Net Reference
比如說想獲取http://www.mindcracker.com/的IP地址,以下代碼就會完成這個任務:
// Call DNS.GetHostName to get IPHostEntry and get the IP address list.
IPHostEntry ipEntry = DNS.GetHostByName ("www.mindcracker.com");
IPAddress [] IpAddr = ipEntry.AddressList;
for (int i = 0; i < IpAddr.Length; i++){
Console.WriteLine ("IP Address {0}: {1} ", i, IpAddr[i].ToString ());
}
另外,使用無參數的GetHostName可以返回本地機器的主機名:
string strHostName = DNS.GetHostName ();
然後將這個主機名作為參數傳遞給GetHostByName,就可以獲取本地機器的IP地址信息。
㈣ 腳本js獲取ip mac地址怎麼返回伺服器
我不清楚你的重點是獲取,還是返回,
獲取的話,應該網上有代碼,可以借鑒
<script language="javascript">
var sMacAddr="";
var sIPAddr="";
var sDNSName="";
var service = locator.ConnectServer();
service.Security_.ImpersonationLevel=3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</script>
<script FOR="foo" EVENT="OnObjectReady(objObject,objAsyncContext)" LANGUAGE="JScript">
if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true){
if(objObject.IPEnabled &&
objObject.IPAddress(0) !=null && objObject.IPAddress(0) !=
"undefined")
sIPAddr = objObject.IPAddress(0);
if(objObject.MACAddress != null &&objObject.MACAddress != "undefined")
sMacAddr = objObject.MACAddress;
if(objObject.DNSHostName != null &&objObject.DNSHostName != "undefined")
sDNSName = objObject.DNSHostName;
}
</script>
js返回給伺服器,通過ajax遠程請求吧.
或者直接把數據當做參數,通過跳轉傳遞給伺服器.
㈤ linux c 怎麼獲得伺服器mac 地址
獲取伺服器mac 復制代碼 代碼如下: <?php /** 獲取網卡的MAC地址原碼;目前支持WIN/LINUX系統 獲取機器網卡的物理(MAC)地址 **/ class GetmacAddr{ var $result = array(); // 返回帶有MAC地址的字串數組 var $macAddr; /*構造*/ function __construct($osType){ switch ( strtolower($osType) ){ case "unix": break; case "solaris": break; case "aix": break; case "linux": { $this->for_linux_os(); }break; default: { $this->for_windows_os(); }break; } $temp_array = array(); foreach($this->result as $value){ if(preg_match("/[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f][:-]"."[0-9a-f][0-9a-f]/i",$value, $temp_array ) ){ $this->macAddr = $temp_array[0]; break; } } unset($temp_array); return $this->macAddr; } /*linux系統中獲取方法*/ function for_linux_os(){ @exec("ifconfig -a", $this->result); return $this->result; } /*win系統中的獲取方法*/ function for_windows_os(){ @exec("ipconfig /all", $this->result); if ( $this->result ) { return $this->result; } else { $ipconfig = $_SERVER["WINDIR"]."\system32\ipconfig.exe"; if(is_file($ipconfig)) { @exec($ipconfig." /all", $this->result); } else { @exec($_SERVER["WINDIR"]."\system\ipconfig.exe /all", $this->result); return $this->result; } } } } ?> 獲取客戶端mac地址: 復制代碼 代碼如下: @exec("arp -a",$array); //執行arp -a命令,結果放到數組$array中 foreach($array as $value){ //匹配結果放到數組$mac_array if(strpos($value,$_SERVER["REMOTE_ADDR"]) && preg_match("/(:?[0-9A-F]{2}[:-]){5}[0-9A-F]{2}/i",$value,$mac_array)){ $mac = $mac_array[0]; break; } } echo $mac; 註:客戶端獲取的mac不能在本機測試,只能用別的電腦訪問才能輸出
㈥ 如何查看伺服器MAC地址
1、按Windows鍵+R鍵呼出「運行」對話框,在對話框中輸入「cmd」然後按「確定」。
㈦ 伺服器端如何獲取客戶端的mac地址
放在伺服器上當然獲取不到,必須要在本地。
所以很多網站說為了安全,一般都說要安裝什麼插件之類,這些插件中,有的就包含了mac的插件。
㈧ 區域網中如何獲取提供上網的伺服器MAC地址
開始 運行 cmd
然後
ipconfig回車
找到Default Gateway,後面是網關IP也就是提供上網的伺服器
arp -a
找到網關的IP,Physical Address就是MAC地址