vs2008C#获取IP地址的问题

vs2008C#获取IP地址的问题,第1张

你试试这个,获取正确可用的IP地址

private IPAddress getIdAddress()

        {

            //IPHostEntry ipEntity = DnsGetHostEntry(DnsGetHostName());      

            ////IPAddress ipAddr = ipEntityAddressList[0];

            //IPAddress ipAddr = DnsGetHostAddresses(DnsGetHostName())[0];      

            //if (ipAddrAddressFamily == SystemNetSocketsAddressFamilyInterNetworkV6)//判断是否IP6协议   

            //{      //    ipAddr = DnsGetHostEntry(DnsGetHostName())AddressList[1];      //}      

            IPAddress ipAddr = null;

            IPAddress[] arrIP = DnsGetHostAddresses(DnsGetHostName());

            foreach (IPAddress ip in arrIP)

            {

                if (SystemNetSocketsAddressFamilyInterNetworkEquals(ipAddressFamily))

                {

                    ipAddr = ip;

                    break;

                }

                else if (SystemNetSocketsAddressFamilyInterNetworkV6Equals(ipAddressFamily))

                {

                    ipAddr = ip;

                }

            } return ipAddr;

        }

之前的即时通讯里面用的

第一种:

private void GetIP()

{

string hostName = DnsGetHostName();//本机

//SystemNetIPAddress[] addressList = DnsGetHostByName(hostName)AddressList;//会警告GetHostByName()已过期,我运行时且只返回了一个IPv4的地址

SystemNetIPAddress[] addressList = DnsGetHostAddresses(hostName);//会返回所有地址,包括IPv4和IPv6

foreach (IPAddress ip in addressList)

{

listBox1ItemsAdd(ipToString());

}

}

第二种:

static string GetLocalIp()

{

string hostname = DnsGetHostName();//得到本机名

//IPHostEntry localhost = DnsGetHostByName(hostname);//方法已过期,只得到IPv4的地址

<SPAN style="WHITE-SPACE: pre"> </SPAN> IPHostEntry localhost = DnsGetHostEntry(hostname);

IPAddress localaddr = localhostAddressList[0];

return localaddrToString();

}

第三种:

string strUrl = "提供IP查询的网站的链接";

Uri uri = new Uri(strUrl);

WebRequest webreq = WebRequestCreate(uri);

Stream s = webreq GetResponse()GetResponseStream();

StreamReader sr = new StreamReader(s, EncodingDefault);

string all = srReadToEnd();

int i = allIndexOf("[") + 1;

//分析字符串得到IP

return ip;

/

我用的是>

gethostname 获取本机名字,gethostbyname 通过前面的名字获取主机具体信息,包括IP地址。MAC地址可以用 Netbios,以上用到的函数都是WIN32 API,具体代码请留****(email或者企鹅)也可以自己百度有现成的VB代码

以上就是关于vs2008C#获取IP地址的问题全部的内容,包括:vs2008C#获取IP地址的问题、如何获取多网卡的IP地址和对应的MAC地址、VB6.0 怎么获得本机的IP和mac地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9579260.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存