C#获取本机IP方法

1.

 1 private void GetIP()
 2 {
 3     string hostName = Dns.GetHostName();//本机名
 4     //System.Net.IPAddress[] addressList = Dns.GetHostByName(hostName).AddressList;//会警告GetHostByName()已过期,我运行时且只返回了一个IPv4的地址
 5     System.Net.IPAddress[] addressList = Dns.GetHostAddresses(hostName);//会返回所有地址,包括IPv4和IPv6
 6     foreach (IPAddress ip in addressList)
 7     {
 8         listBox1.Items.Add(ip.ToString());
 9     }
10 }  

2.使用IPHostEntry获取本机局域网地址

1         static string GetLocalIp()
2         {
3             string hostname = Dns.GetHostName();//得到本机名
4             //IPHostEntry localhost =Dns.GetHostByName(hostname);//方法已过期,只得到IPv4的地址
5             IPHostEntry localhost = Dns.GetHostEntry(hostname);
6             IPAddress localaddr = localhost.AddressList[0];
7             return localaddr.ToString();
8         }  

3.通过向网站向一些提供IP查询的网站发送webrequest,然后分析返回的数据流

 1        string strUrl = "提供IP查询的网站的链接";
 2        Uri uri = new Uri(strUrl);
 3        WebRequest webreq = WebRequest.Create(uri);
 4        Stream s = webreq .GetResponse().GetResponseStream();
 5        StreamReader sr = new StreamReader(s, Encoding.Default);
 6        string all = sr.ReadToEnd();
 7        int i = all.IndexOf("[") + 1;
 8        //分析字符串得到IP
 9        return ip;
10        /*
11         我用的是http://www.ip.cn/getip.php?action=getip&ip_url=&from=web
12         (这种链接很容易找的,百度“IP”得到一些网站,分析一下网站的链接就能得到)
13         返回的数据是:
14         <div class="well"><p>当前 IP:<code>0.0.0.0</code>&nbsp;来自:XX省XX市 电信</p><p>GeoIP: Beijing, China</p></div>
15         解析这段就行
16       */  

4.通过获取CMD里ipconfig命令的结果来得到IP

 1    private void GetIP6()
 2    {
 3        Process cmd = new Process();
 4        cmd.StartInfo.FileName = "ipconfig.exe";//设置程序名
 5        cmd.StartInfo.Arguments = "/all";  //参数
 6 //重定向标准输出
 7        cmd.StartInfo.RedirectStandardOutput = true;
 8        cmd.StartInfo.RedirectStandardInput = true;
 9        cmd.StartInfo.UseShellExecute = false;
10        cmd.StartInfo.CreateNoWindow = true;//不显示窗口(控制台程序是黑屏)
11 //cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;//暂时不明白什么意思
12        /*
13 收集一下 有备无患
14        关于:ProcessWindowStyle.Hidden隐藏后如何再显示?
15        hwndWin32Host = Win32Native.FindWindow(null, win32Exinfo.windowsName);
16        Win32Native.ShowWindow(hwndWin32Host, 1);     //先FindWindow找到窗口后再ShowWindow
17        */
18        cmd.Start();
19        string info = cmd.StandardOutput.ReadToEnd();
20        cmd.WaitForExit();
21        cmd.Close();
22        textBox1.AppendText(info);
23    }  
时间: 2024-10-13 10:32:34

C#获取本机IP方法的相关文章

python优雅获取本机 IP 方法

见过很多获取服务器本地IP的代码,个人觉得都不是很好.从网上搜索到一个靠谱的脚本,分享一下! 通过 UDP 获取本机 IP,目前见过最优雅的方法 这个方法是目前见过最优雅获取本机服务器的IP方法了.没有任何的依赖,也没有去猜测机器上的网络设备信息. 而且是利用 UDP 协议来实现的,生成一个UDP包,把自己的 IP 放如到 UDP 协议头中,然后从UDP包中获取本机的IP. 这个方法并不会真实的向外部发包,所以用抓包工具是看不到的.但是会申请一个 UDP 的端口,所以如果经常调用也会比较耗时的,

Python 优雅获取本机 IP 方法

见过很多获取服务器本地IP的代码,个人觉得都不是很好,例如以下这些 不推荐:靠猜测去获取本地IP方法 #!/usr/bin/env python # -*- coding: utf-8 -*- import socket import fcntl import struct def get_ip_address(ifname): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return socket.inet_ntoa(fcntl.i

关于是用dotnet获取本机IP地址+计算机名的方法

印象中在maxscript帮助文档里找到过方法,但是当时没记下来.只能通过dotnet实现了. 如果电脑有无线网卡和本地连接,可能会出现乱码,也问了写dotnet的朋友,提供了一些思路,不过最终还是使用了这个笨办法. fn getIP_PCname = ( cc = (dotnetclass "System.Net.Dns") oo = cc.GetHostAddresses(cc.GetHostName()) for ip = 1 to oo.count do ( getip = f

#获取本机IP地址时排除IPv6类型,只返回IPv4地址的方法

public static string GetLocalIP(){try{string HostName = Dns.GetHostName(); //得到主机名IPHostEntry IpEntry = Dns.GetHostEntry(HostName); for (int i=0; i < IpEntry.AddressList.Length; i++){//从IP地址列表中筛选出IPv4类型的IP地址//AddressFamily.InterNetwork表示此IP为IPv4,//Ad

C#获取本机IP搜集整理7种方法

今天打算试着写个小聊天程序,但是要用到获取本机IP,以前从没用过.摆渡百度了一会儿,出于贪心,想把各种获取本机IP的方法给找出来.摆渡+测试了几个小时,于是有了下面的成果,有点小累,但看到这些成果,也很高兴.不一定很全,但也不少了. ① [csharp] view plaincopy private void GetIP() { string hostName = Dns.GetHostName();//本机名 //System.Net.IPAddress[] addressList = Dns

获取本机IP地址

这里有两种方法: 1 //获取本机IP 2 - (NSString *)localIPAddress 3 { 4 NSString *localIP = nil; 5 struct ifaddrs *addrs; 6 if (getifaddrs(&addrs)==0) { 7 const struct ifaddrs *cursor = addrs; 8 while (cursor != NULL) { 9 if (cursor->ifa_addr->sa_family == AF_

python:使用netifaces模块获取本机IP网关等信息

python获取本机IP有很多种方法,可每种方法都有局限性. 使用netifaces模块获取本机IP网关等信息,需要安装netifaces模块,不管windows还是linux都可以通用. 一.程序: #!/usr/bin/env python2 # -*- coding: utf-8 -*- #实现本地网卡IP #需要安装netifaces模块 def GetNetworkIP():     #获取本地网卡IP地址     import netifaces     #routingGatewa

获取本机IP、mac地址、计算机名

python获取本机IP.mac地址.计算机名 在python中获取ip地址和在php中有很大不同,我们先来看一下python 获得本机MAC地址: >>> import uuid >>> def get_mac_address(): mac = uuid.UUID(int = uuid.getnode()).hex[-12:] return ':'.join([mac[e:e+2] for e in range(0,11,2)]) >>> get_m

python获取本机IP、mac地址、计算机名

在python中获取ip地址和在php中有很大不同,在php中往往比较简单.那再python中怎么做呢? 我们先来看一下python 获得本机MAC地址: 1 2 3 4 import uuid def get_mac_address():      mac=uuid.UUID(int = uuid.getnode()).hex[-12:]      return ":".join([mac[e:e+2] for e in range(0,11,2)]) 下面再来看一下python获取