當前位置:首頁 » 雲伺服器 » 浪潮伺服器mac地址獲取

浪潮伺服器mac地址獲取

發布時間: 2022-05-17 00:19:20

❶ 如何獲取本機MAC地址 和 IP

1. 利用UUID獲取
在Windows操作系統下,以Client-Sever模式進行通信時,運行時間庫為了區分每個介面,需要為個介面建立一個UUID(Universally Unique Identifiers),在Windows95/98版本下,UUID的創建是通過調用函數UuidCreate()完成的,其中的第2至8位元組包含了用戶的MAC地址。因此,一種比較快的獲取MAC地址的方法是創建一個UUID,然後分析UUID結構的第2至8位元組,既可獲取本機的MAC地址。示常式序如下:
static void GetMACaddress(void)
{
unsigned char MACData[6];
UUID uuid;
UuidCreate( &uuid ); // 要求操作系統創建一個新的UUID
for (int i=2; i<8; i++) // 獲取本機MAC地址
MACData[i - 2] = uuid.Data4[i];
PrintMACaddress(MACData);
}
void PrintMACaddress(unsigned char MACData[])
{
printf("MAC Address: X-X-X-X-X-X\n",
MACData[0], MACData[1], MACData[2], MACData[3], MACData[4], MACData[5]);
}
這種方法只能用於Windows95/98操作系統。因為從安全的角度來看,在網路上散布本機的MAC地址存在著安全隱患,因此在Windows2000/xp操作系統中,微軟對函數UuidCreate()進行了修正,使之在生成UUID時,不藉助於本機的MAC地址。原來UuidCreate()完成的功能由函數UuidCreateSequential()完成。因此,如果在新的系統中採用這種方法,可用UuidCreateSequential()代替上述程序中的UuidCreate()函數。
另外,需要說明的是,這種方式只能用於單網卡主機。
2. 利用Net Bios協議獲取
這種方法在Windows 95/98/Me/NT/2000/XP下都適用,不過它要求網卡必須安裝正確,綁定了NetBios協議,並且機器正聯接在一個運行正常的NetBios網路上。如果主機未接在網上,即使用網卡運行正常,運行下述代碼,用戶也不會得到任何信息。
static void GetMACaddress(void)
{
unsigned char MAC Data[8]; // 定義存放 MAC地址的緩沖區 (至少6位元組)
WKSTA_TRANSPORT_INFO_0 *pwkti;
DWORD dwEntriesRead;
DWORD dwTotalEntries;
BYTE *pbBuffer;

// 通過 NetBIOS的枚舉函數獲取MAC地址
NET_API_STATUS dwStatus = NetWkstaTransportEnum(
NULL, // [input] 伺服器名,0指本機
0, // [input] 0指函數返回指向WKSTA_TRANSPORT_INFO_0結構的指針
&pbBuffer, // [output] 指向緩沖區指針
MAX_PREFERRED_LENGTH, // [input] 緩沖區最大長度
&dwEntriesRead, // [output] 用於記錄實際元素個數
&dwTotalEntries, //
NULL); //[input/output] 恢復句柄
assert(dwStatus == NERR_Success);
pwkti = (WKSTA_TRANSPORT_INFO_0 *)pbBuffer; // 指針類型轉換
for(DWORD i=0; i< dwEntriesRead; i++)
{ // 讀取並列印MAC地址
swscanf((wchar_t *)pwkti[i].wkti0_transport_address,
L"%2hx%2hx%2hx%2hx%2hx%2hx",
&MACData[0],
&MACData[1],
&MACData[2],
&MACData[3],
&MACData[4],
&MACData[5]);
PrintMACaddress(MACData);
}
// 釋放緩沖區
dwStatus = NetApiBufferFree(pbBuffer);
assert(dwStatus == NERR_Success);
}
3. 利用GetAdaptersInfo()函數獲取
此方法利用了Windows SDK 中的函數GetAdaptersInfo(),對於用戶來講,編程很簡單,而且適用於Windows 95/98/Me/NT/XP等操作系統,並且不要求主機必須接在網路上,要求的只有一點,就是網卡在Windows下必須是可用的。同時,需要說明的是,GetAdaptersInfo()是一個功能非常強大的函數,它不但可以得到本機的MAC地址,而且可以得到許多其它相關信息。詳細內容可參見MSDN中有關IP_ADAPTER_INFO結構的說明。
static void GetMACaddress(void)
{
IP_ADAPTER_INFO AdapterInfo[16]; // 定義網卡信息存貯區。
DWORD dwBufLen = sizeof(AdapterInfo);
DWORD dwStatus = GetAdaptersInfo(
AdapterInfo, // [output] 指向接收數據緩沖指針
&dwBufLen); // [input] 緩沖區大小
assert(dwStatus == ERROR_SUCCESS); // 此處是個trap,用來保證返回值有效
PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;
do {
PrintMACaddress(pAdapterInfo->Address); // 列印MAC地址
pAdapterInfo = pAdapterInfo->Next;
}
while(pAdapterInfo);
}
本程序中定義了一個長度為16的IP_ADAPTER_INFO結構類型的數組,因此用戶主機安裝的網卡數不能超過16塊,這在一般情況下都是可以滿足的,如果出現超過16塊的情況,用戶需修改此項設置,或採用動態申請存貯空間的方式解決。
4.結束語
以上三種方法均在Visual C++ 6.0、Windows2000 環境下編譯通過並工作正常。需要說明的是,示常式序只是提供了一種解決問題的思路,從軟體工程的角度來看,有些不盡人意的地方,讀者可以根據自己的編程需要進行修改。
5,獲取IP
void CheckIP(void)
{
WSADATA wsaData;
char name[155];
char *ip;
PHOSTENT hostinfo;
if ( WSAStartup( MAKEWORD(2,0), &wsaData ) == 0 ) {
if( gethostname ( name, sizeof(name)) == 0) {
if((hostinfo = gethostbyname(name)) != NULL) { //這些就是獲得IP的函數
ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
printf("%s\n",ip);
}
}
WSACleanup( );
} }

❷ 如何獲取客戶端IP和MAC地址,我獲取的是伺服器的,C

MAC地址是2層的東西,過了3層路由器後源MAC與目的MAC就會跟著所經過的路由器地址改變,如果在客戶端沒有任何響應進程將MAC地址信息放在應用層,理論上你不可能獲得。能非常容易的獲得ip地址、mac地址跟主機名應該是蠻危險的事情。你要真想問,你可以去黑客論壇找找吧。。。

❸ 如何獲取mac地址

以台式電腦為例,在Windows10系統下:1、按住「win+r」組合鍵調出電腦的運行窗口;2、在窗口內輸入「CMD」,按回車;3、在命令提示符窗口中輸入ipconfig /all並按回車;4、找到物理網卡選項,物理網卡下面就是mac地址。

方法二:1、在電腦桌面的右下角右鍵點擊網路連接圖標,之後打開網路和共享中心;2、在彈出頁面點擊「更改適配器設置」;3、找到我們需要查看的網卡,並雙擊打開,點擊「詳細信息」選項;4、在詳細信息界面的物理地址即mac地址。

mac地址一般稱為乙太網地址或者物理地址,可以用來確定上網設備的位置,長度為48比特,由16進制的數字組成,前24位為組織唯一標志符,後24位一般由廠家自行分配。

資料拓展:在一個穩定的網路中,IP地址和MAC地址是成對出現的。如果一台計算機要和網路中另一外計算機通信,那麼要配置這兩台計算機的IP地址,MAC地址是網卡出廠時設定的,這樣配置的IP地址就和MAC地址形成了一種對應關系。

❹ 浪潮財務軟體登錄時,出現這個「提示程序錯誤:客戶端全局配置文件錯誤,無法讀取站點信息」請教高人指點

第一種情況是的客戶端配置文件出了問題,一有可能是被修改了,二有可能是損壞了(病毒啊、木馬啊),或者說要更新了。
第二種可能是目標伺服器的IP或者是MAC地址更改了,原有客戶端配置文件尋找不到目標伺服器。
還有一種可能是目標伺服器接入許可權修改了,現有客戶端接入伺服器時候受阻無法獲取站點信息。
最後一種可能是你的網路不好沒連上,或者伺服器壓根沒開。
個人觀點,僅供參考。

❺ 怎樣獲取DHCP伺服器的MAC地址(區域網)

ping命令只能說明與dhcp之間的網路是通還是不通
至於arp -a命令,這個一般來說只能查到你的網關,以及同網路下的主機的mac地址
可以這樣說,你PING DHCP後,你的默認網關會幫你尋找對應的DHCP伺服器在哪裡,對你來說,你只需要把數據交給網關就可以了,DHCP伺服器的MAC地址你不知道也可以通信

❻ 伺服器端如何獲取客戶端的mac地址

放在伺服器上當然獲取不到,必須要在本地。
所以很多網站說為了安全,一般都說要安裝什麼插件之類,這些插件中,有的就包含了mac的插件。

❼ 如何獲取計算機的MAC地址和IP地址

如何獲取MAC地址? 那麼我們如何獲取計算機的MAC地址吶?大概可以分為以下幾種情況: 獲取本機的MAC地址 在Windows 9X系列的計算機系統:依次單擊「開始」→「運行」→輸入「winipcfg」→回車,其中適配器地址就是計算機的MAC地址。 在Windows 2000/XP的計算機系統中,依次單擊「開始」→「運行」→輸入「cmd」→回車,在出現的命令提示符界面中輸入「ipconfig /all」→回車,可以得到計算機的MAC地址,其中Physical Address就是計算機的MAC地址。 另外,在所有系統中,獲取MAC地址還有另外一種較特別的方法,這種方法無須在命令行提示符下鍵入命令,無須牢記復雜的命令。只要滑鼠輕點幾下即可。方法是:滑鼠依次點擊「開始→所有程序→附件→系統工具→系統信息」在「系統摘要」下,展開「組件→網路→適配器」,右邊的摘要中就會列出本機的MAC 地址。 如果您在線,還可以用以下方法查MAC地址:首先啟動IE連接到網路,滑鼠右擊任務欄中托盤區中的網路連接圖標(兩台小電腦),點選「狀態」→「支持」選項卡下的「詳細信息」,其中的實際地址即為您網卡的MAC地址 如何獲取IP? ip可以在本地 單擊開始-運行-然後輸入 cmd --再在虛擬DOS窗口中輸入--ipconfig 再一個就是 外網IP跟內網IP 獲取外網IP可以上 http://ip138.com/ 查看 內網IP 就是以上本地獲取方法

❽ 被某網站屏蔽mac了,請教伺服器都有哪些方法可以獲取mac地址

不是吧!MAC地址只是數據鏈路層的,也就是在區域網裡面才有用,跨網段以後MAC就變了!你訪問互聯網的時候,靠得是三層地址,即IP地址。網站怎麼可能查到你的MAC地址呢?

熱點內容
為什麼安卓介面充電線松 發布:2025-05-12 03:41:20 瀏覽:669
安卓手機打擊墊怎麼玩 發布:2025-05-12 03:23:14 瀏覽:241
phpexplode 發布:2025-05-12 03:15:33 瀏覽:73
雙色球怎麼演算法 發布:2025-05-12 03:15:31 瀏覽:559
伺服器如何整體遷移 發布:2025-05-12 03:15:27 瀏覽:166
顯示linux分區 發布:2025-05-12 03:15:25 瀏覽:572
c語言數組長度函數是 發布:2025-05-12 03:11:09 瀏覽:173
php簡單框架 發布:2025-05-12 03:00:51 瀏覽:242
雁優化演算法 發布:2025-05-12 03:00:14 瀏覽:937
麻將規則演算法 發布:2025-05-12 03:00:11 瀏覽:388