• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            edog

            冰凍熱狗
            數(shù)據(jù)加載中……

            取本機(jī)IP地址和網(wǎng)卡號(hào)

            界面如下,主要是使用Winsock的一些東東取機(jī)器名和IP地址,取網(wǎng)卡就麻煩些,需要發(fā)送Netbios命令,需要注意的是需要包含winsock2.hnb30.h,并且要引入兩個(gè)lib
            GetIPName.jpg

            包含頭和lib如下:
            #include<winsock2.h>
            #include 
            <nb30.h>
            #pragma comment(lib, 
            "netapi32.lib")
            #pragma comment(lib, 
            "Wsock32.lib")

            具體的實(shí)現(xiàn)參考源程序。

            源程序下載:http://www.shnenglu.com/Files/edog/GetIPName.rar


            根據(jù)shootingstars 的指點(diǎn),編寫(xiě)了一下用 Iphlpapi 取IP地址的代碼,可以取本機(jī)IP,網(wǎng)關(guān)IP,子網(wǎng)掩碼,網(wǎng)卡名字等,需要在VC7上編譯:

            #include "stdio.h" 
            #include 
            "windows.h" 
            #include 
            "Iphlpapi.h" 
            #pragma comment(lib, 
            "Iphlpapi.lib"
            void main() 

            IP_ADAPTER_INFO pAdapterInfo; 
            ULONG len 
            = sizeof(pAdapterInfo); 

            if(GetAdaptersInfo(&pAdapterInfo, &len) != ERROR_SUCCESS) 

            printf(
            "GetAdaptersInfo ERROR!\n"); 
            }
             
            else 

            printf(
            "AdapterName: %s\n", pAdapterInfo.AdapterName); 
            printf(
            "Description: %s\n", pAdapterInfo.Description); 
            printf(
            "IP Address : %s\n", pAdapterInfo.IpAddressList.IpAddress.String); 
            printf(
            "IP Mask : %s\n", pAdapterInfo.IpAddressList.IpMask.String); 
            printf(
            "Gateway IP : %s\n", pAdapterInfo.GatewayList.IpAddress.String); 
            }
             
            }
             

            輸出結(jié)果如下: 
            AdapterName: 
            {475CB3CA-3478-415A-86D8-7E5982306F58} 
            Description: D
            -Link DFE-530TX PCI Fast Ethernet Adapter (rev.C) 
            IP Address : 
            192.168.168.23 
            IP Mask : 
            255.255.255.0 
            Gateway IP : 
            192.168.168.10 

            posted on 2005-11-30 01:13 冰凍熱狗 閱讀(13436) 評(píng)論(15)  編輯 收藏 引用 所屬分類(lèi): 應(yīng)用程序

            評(píng)論

            # re: 取本機(jī)IP地址和網(wǎng)卡號(hào)  回復(fù)  更多評(píng)論   

            也可以包含windows.h,附加庫(kù)ws2_32.lib即可提取IP地址和Hostname
            2005-11-30 06:42 | nanami

            # re: 取本機(jī)IP地址和網(wǎng)卡號(hào)  回復(fù)  更多評(píng)論   

            呵呵,不用這么麻煩,直接使用ip助手庫(kù)提供的函數(shù)即可:
            DWORD GetAdaptersInfo(
            PIP_ADAPTER_INFO pAdapterInfo,
            PULONG pOutBufLen
            );
            其中IP_ADAPTER_INFO結(jié)構(gòu)體包含所有的網(wǎng)卡描述信息
            2005-11-30 09:58 | shootingstars

            # re: 取本機(jī)IP地址和網(wǎng)卡號(hào)  回復(fù)  更多評(píng)論   

            謝謝 shootingstars 的指點(diǎn),我試了一下GetAdaptersInfo,功能更好,可以取到本機(jī)IP,子網(wǎng)掩碼,網(wǎng)關(guān)IP,網(wǎng)卡名稱(chēng)等。不過(guò)只能在VC7上編譯,VC6好像不支持IP Helper庫(kù),另外,不知道能否用這個(gè)庫(kù)取到MAC地址?還沒(méi)來(lái)得及研究呢,請(qǐng)指點(diǎn)一二:) 程序如下:

            #include "stdio.h"
            #include "windows.h"
            #include "Iphlpapi.h"
            #pragma comment(lib, "Iphlpapi.lib")
            void main()
            {
            IP_ADAPTER_INFO pAdapterInfo;
            ULONG len = sizeof(pAdapterInfo);

            if(GetAdaptersInfo(&pAdapterInfo, &len) != ERROR_SUCCESS)
            {
            printf("GetAdaptersInfo ERROR!\n");
            }
            else
            {
            printf("AdapterName: %s\n", pAdapterInfo.AdapterName);
            printf("Description: %s\n", pAdapterInfo.Description);
            printf("IP Address : %s\n", pAdapterInfo.IpAddressList.IpAddress.String);
            printf("IP Mask : %s\n", pAdapterInfo.IpAddressList.IpMask.String);
            printf("Gateway IP : %s\n", pAdapterInfo.GatewayList.IpAddress.String);
            }
            }

            輸出結(jié)果如下:
            AdapterName: {475CB3CA-3478-415A-86D8-7E5982306F58}
            Description: D-Link DFE-530TX PCI Fast Ethernet Adapter (rev.C)
            IP Address : 192.168.168.23
            IP Mask : 255.255.255.0
            Gateway IP : 192.168.168.10
            2005-11-30 14:14 | 冰凍熱狗

            # re: 取本機(jī)IP地址和網(wǎng)卡號(hào)  回復(fù)  更多評(píng)論   

            Good
            2006-01-19 15:58 | Kevin Lai

            # re: 取本機(jī)IP地址和網(wǎng)卡號(hào)  回復(fù)  更多評(píng)論   

            好東東,...
            2006-03-17 18:43 |

            # re: 取本機(jī)IP地址和網(wǎng)卡號(hào)  回復(fù)  更多評(píng)論   

            good
            2006-04-11 21:12 | g

            # re: 取本機(jī)IP地址和網(wǎng)卡號(hào)  回復(fù)  更多評(píng)論   

            pAdapterInfo.Address就是MAC地址
            2006-09-19 15:51 | fnst

            # re: 取本機(jī)IP地址和網(wǎng)卡號(hào)  回復(fù)  更多評(píng)論   

            ULONG len = sizeof(pAdapterInfo);
            若有多個(gè)IP會(huì)產(chǎn)生ERROR_BUFFER_OVERFLOW錯(cuò)誤
            改成*10應(yīng)該好些
            2006-09-19 17:36 | fnst

            # re: 取本機(jī)IP地址和網(wǎng)卡號(hào)  回復(fù)  更多評(píng)論   

            哈,謝謝各位指點(diǎn)!
            2006-09-20 23:31 | 冰凍熱狗

            # re: 取本機(jī)IP地址和網(wǎng)卡號(hào)  回復(fù)  更多評(píng)論   

            GetAdaptersInfo在VC6下需要安裝platformSDK,因?yàn)樗约翰缓琁phlpapi.h,在SDK里包含了,可以去微軟網(wǎng)站下載
            2006-11-17 08:48 | haipengno1

            # re: 取本機(jī)IP地址和網(wǎng)卡號(hào)  回復(fù)  更多評(píng)論   

            你好,我看過(guò)了你的用Netbios命令去MAC地址的源代碼,但我想知道,如何區(qū)分是虛擬網(wǎng)卡,還是真的網(wǎng)卡呢?
            2006-11-22 15:00 | yingyi8989

            # re: 取本機(jī)IP地址和網(wǎng)卡號(hào)  回復(fù)  更多評(píng)論   

            利用NetBios取出來(lái)的虛擬網(wǎng)卡MAC地址為零,你取一取就知道了
            2007-05-31 22:29 | naliver

            # re: 取本機(jī)IP地址和網(wǎng)卡號(hào)  回復(fù)  更多評(píng)論   

            太好了,我愛(ài)死你了!
            2007-07-12 10:10 | suwh

            # 錯(cuò)了?[未登錄](méi)  回復(fù)  更多評(píng)論   

            利用NetBios取出來(lái)的虛擬網(wǎng)卡MAC地址為零,你取一取就知道了
            =============================================
            說(shuō)錯(cuò)了吧? 我用VM,Netbios取出來(lái)的不是0啊
            2008-01-10 15:02 | hw

            # re: 取本機(jī)IP地址和網(wǎng)卡號(hào)  回復(fù)  更多評(píng)論   

            tks 4 your help
            2008-01-25 14:23 | hss
            国产精品免费看久久久香蕉| 亚洲精品国精品久久99热| 精品久久久久久无码专区不卡| 国产∨亚洲V天堂无码久久久| 国产精品久久久久久| 亚洲国产精品无码久久九九| 欧美熟妇另类久久久久久不卡 | 日本欧美久久久久免费播放网 | 99久久精品国内| 热久久国产欧美一区二区精品| 欧美熟妇另类久久久久久不卡| 久久久精品久久久久特色影视| 久久夜色精品国产网站| 久久国产精品免费一区二区三区| 久久久久久精品免费看SSS| 91精品国产91久久久久久蜜臀| 亚洲国产成人精品久久久国产成人一区二区三区综| 亚洲精品tv久久久久久久久| 久久一区二区三区99| 亚洲国产精品人久久| 精品国产乱码久久久久久1区2区 | 亚洲国产欧美国产综合久久 | 天天躁日日躁狠狠久久| 麻豆国内精品久久久久久| 久久久久中文字幕| 精品亚洲综合久久中文字幕| 久久久久久亚洲Av无码精品专口| 精品久久久无码人妻中文字幕| 无夜精品久久久久久| 亚洲精品高清一二区久久| 亚洲国产成人精品无码久久久久久综合 | 久久精品亚洲乱码伦伦中文| 久久精品国产69国产精品亚洲| 人妻少妇久久中文字幕| 久久精品免费一区二区| 狠狠色综合网站久久久久久久高清 | 久久影院午夜理论片无码| 青青青青久久精品国产| 亚洲嫩草影院久久精品| 国产日韩欧美久久| 久久久综合香蕉尹人综合网|