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 }

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

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

方法时通过向网站向一些提供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 */

通过获取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 }

C#获取本机IP以及无线网ip的更多相关文章

  1. js获取本机mac地址,IP地址,计算机名

    <!DOCTYPE HTML> <html> <head> <title>js获取本机mac地址,IP地址,计算机名</title> < ...

  2. C++获取本机用于连接的IP地址

    最近写个程序需要获取本机用于连接的IP地址,经过很多的尝试后,最终使用的方法如下: 使用cmd命令    netstat  | findstr “192.168.6.66:3333” > D:\ ...

  3. 获取客户机MAC地址 根据IP地址 获取机器的MAC地址 / 获取真实Ip地址

    [DllImport("Iphlpapi.dll")] private static extern int SendARP(Int32 dest, Int32 host, ref ...

  4. c#中如何获取本机MAC地址、IP地址、硬盘ID、CPU序列号等系统信息

    我们在利用C#开发桌面程序(Winform)程序的时候,经常需要获取一些跟系统相关的信息,例如用户名.MAC地址.IP地址.硬盘ID.CPU序列号.系统名称.物理内存等. 首先需要引入命名空间: us ...

  5. Linux C 获取本机所有网卡的 IP,Mask

    0 运行环境 本机系统:Windows 10 虚拟机软件:Oracle VM VirtualBox 6 虚拟机系统:Ubuntu 18 1 代码 #include <sys/ioctl.h> ...

  6. C#获取本机的外网IP

    /// <summary> /// 功能:获取本地的外网IP地址 /// 作者:黄海 /// 时间:2016-07-22 /// </summary> /// <retu ...

  7. 在.bashrc中,使用python获取本机IP地址(现在只支持wlan)

    其实最好的办法是写个单独的脚本去查找IP,但是如果实在不愿意单写一个脚本文件,也可以直接将代码嵌入.bashrc中 在~/.bashrc下加入下面这行代码即可使用python获取本机的wlan的IP地 ...

  8. LabVIEW 获取本机多个ip地址

    图 1   网上见了好多设置的,都没讲清楚,在这里整理一下本机ip地址的获取问题.关键在"字符串向ip地址转换"函数的设置上面,见下图2,选择多输出就能获取本机的多个ip地址,若不 ...

  9. Qt-网络与通信-获取本机网络信息

    在网络应用中,经常需要获取本机主机名和IP地址和硬件地址等信息.运用QHostInfo.QNetworkInterface.QNetworkAddressEntry可以获得本机的网络信息. 上运行截图 ...

随机推荐

  1. iOS多线程编程Part 1/3 - NSThread & Run Loop

    前言 多线程的价值无需赘述,对于App性能和用户体验都有着至关重要的意义,在iOS开发中,Apple提供了不同的技术支持多线程编程,除了跨平台的pthread之外,还提供了NSThread.NSOpe ...

  2. iOS开发网络篇—大文件的多线程断点下载(转)

    http://www.cnblogs.com/wendingding/p/3947550.html   iOS开发网络篇—多线程断点下载 说明:本文介绍多线程断点下载.项目中使用了苹果自带的类,实现了 ...

  3. ios7去除手势滑动返回

    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { sel ...

  4. javascript中alert()与console.log()的区别

    我们在做js调试的时候使用 alert 可以显示信息,调试程序,alert 弹出窗口会中断程序, 如果要在循环中显示信息,手点击关闭窗口都累死.而且 alert 显示对象永远显示为[object ]. ...

  5. 【BZOJ】【1029】【JSOI2007】建筑抢修

    贪心 按T2(完成时限)排序,然后从前往后依次枚举 如果sum+a[i].t1<=a[i].t2则加入 如果来不及修这个建筑: 如果当前这个建筑的维修时间t1比之前修过的建筑中耗时最长的耗时短, ...

  6. 运用 DataContractSerializer 存储本地对象

    public void Save(string filename,State state) { DataContractSerializer ds = new DataContractSerializ ...

  7. firefox无法安装未通过验证的扩展

    firefox43版本无法安装未验证附加组件,利用以下方法: 1.进入firefox  about:config页面中 2.搜索xpinstall.signatures.required,将值改为fa ...

  8. FreePlan Windows下默认乱码解决方案

    FreePlan 做为一个开源的跨平台的思维导图软件非常好用. 笔者最近在Windows下使用时发现,新建导图文件时默认总是乱码,每次新建元素都需要手动设置一下字体才行. 研究一下,估计是默认模板问题 ...

  9. 在C#中调用另一个应用程序或命令行(.exe 带参数)<zz>

    在.net中使用system.diaglostics.Process可以用来调用另一个命令行或程序. using   System.Diagnostics;     如果是dos     Proces ...

  10. POJ2151Check the difficulty of problems

    题意 : 举办一次比赛不容易,为了不让题目太难,举办方往往希望能够讲出的题目满足两点,1是所有的队伍都至少能够解出一个题目,2是冠军队至少能解出确定数量的题目,最后让你求的是每个队伍至少解出一道题并且 ...