C#获取本机IP方法,获取本机局域网IP地址方法
1.
- private void GetIP()
- {
- string hostName = Dns.GetHostName();//本机名
- //System.Net.IPAddress[] addressList = Dns.GetHostByName(hostName).AddressList;//会警告GetHostByName()已过期,我运行时且只返回了一个IPv4的地址
- System.Net.IPAddress[] addressList = Dns.GetHostAddresses(hostName);//会返回所有地址,包括IPv4和IPv6
- foreach (IPAddress ip in addressList)
- {
- listBox1.Items.Add(ip.ToString());
- }
- }
2.使用IPHostEntry获取本机局域网地址
- public static string GetLocalIp()
- {
- //得到本机名
- string hostname = Dns.GetHostName();
- //解析主机名称或IP地址的system.net.iphostentry实例。
- IPHostEntry localhost = Dns.GetHostEntry(hostname);
- if (localhost != null)
- {
- foreach (IPAddress item in localhost.AddressList)
- {
- //判断是否是内网IPv4地址
- if (item.AddressFamily== AddressFamily.InterNetwork)
- {
- return item.MapToIPv4().ToString();
- }
- }
- }
- return "192.168.1.124";
- }
3.通过向网站向一些提供IP查询的网站发送webrequest,然后分析返回的数据流
- string strUrl = "提供IP查询的网站的链接";
- Uri uri = new Uri(strUrl);
- WebRequest webreq = WebRequest.Create(uri);
- Stream s = webreq .GetResponse().GetResponseStream();
- StreamReader sr = new StreamReader(s, Encoding.Default);
- string all = sr.ReadToEnd();
- int i = all.IndexOf("[") + ;
- //分析字符串得到IP
- return ip;
- /*
- 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> 来自:XX省XX市 电信</p><p>GeoIP: Beijing, China</p></div>
- 15 解析这段就行
- 16 */
4.通过获取CMD里ipconfig命令的结果来得到IP
- private void GetIP6()
- {
- Process cmd = new Process();
- cmd.StartInfo.FileName = "ipconfig.exe";//设置程序名
- cmd.StartInfo.Arguments = "/all"; //参数
- //重定向标准输出
- cmd.StartInfo.RedirectStandardOutput = true;
- cmd.StartInfo.RedirectStandardInput = true;
- cmd.StartInfo.UseShellExecute = false;
- cmd.StartInfo.CreateNoWindow = true;//不显示窗口(控制台程序是黑屏)
- //cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;//暂时不明白什么意思
- /*
- 13 收集一下 有备无患
- 14 关于:ProcessWindowStyle.Hidden隐藏后如何再显示?
- 15 hwndWin32Host = Win32Native.FindWindow(null, win32Exinfo.windowsName);
- 16 Win32Native.ShowWindow(hwndWin32Host, 1); //先FindWindow找到窗口后再ShowWindow
- 17 */
- cmd.Start();
- string info = cmd.StandardOutput.ReadToEnd();
- cmd.WaitForExit();
- cmd.Close();
- textBox1.AppendText(info);
- }
C#获取本机IP方法,获取本机局域网IP地址方法的更多相关文章
- Windows下获取本机IP地址方法介绍
Windows下获取本机IP地址方法介绍 if((hostinfo = gethostbyname(name)) != NULL) { #if 1 ; printf("IP COUNT: % ...
- java获取本机ip(排除虚拟机等一些ip)最终解,总算找到方法了
本文参考https://blog.csdn.net/u011809209/article/details/77236602 本文参考https://blog.csdn.net/yinshuomail/ ...
- js获取IP地址方法总结_转
js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338.html 1,js取得IP地址 ...
- js获取IP地址方法总结
js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338.html 1,js取得IP地址 ...
- windows 获取本机(全部)IPv4、IPv6、MAC地址方法 (C/C++)
windows下获取IP地址的两种方法: 一种可以获取IPv4和IPv6,但是需要WSAStartup: 一种只能取到IPv4,但是不需要WSAStartup: 如下: 方法一:(可以获取IPv4和I ...
- C#获取IP及MAC地址 方法
C#获取IP及MAC地址 方法,比较齐全 using System.Net; using System; using System.Management; using System.Runtime.I ...
- C#获取本机局域网ip和公网ip
1.获取局域网ip IPAddress ipAddr = Dns.Resolve(Dns.GetHostName()).AddressList[0];//获得当前IP地址 string ip=ipAd ...
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- (一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) 一.HTTP协议初探: HTTP(Hypertext Transfer Protocol)中文 “超文本传输协议”,是 ...
随机推荐
- 虚拟化之docker安装篇
1,docker pull centos 下载centos镜像 docker search centos 搜索镜像 2,docker images 查看本地镜像 3,do ...
- IoC容器Autofac之实例引入(一)
先不必尝试理解IOC,先来看段代码. 一.一个没有使用IoC的例子 public class MPGMovieLister { public Movie[] GetMPG() { var finder ...
- JavaScript ----------------- 原型式继承
思想:借助原型可以基于已有的对象创建新对象,同时还不必因此创建自定义类型.为了达到这个目的,看看下面的实现方式 function object(o){ function F(){ } F.protot ...
- Android Studio添加应用作为依赖时报错Error:Dependency MonthText:xlistview:unspecified on project app resolves to an APK archive which is not supported as a compilation dependency. File: 及其解决方案
Error:Dependency MonthText:xlistview:unspecified on project app resolves to an APK archive which is ...
- React-Native做一个文本输入框组件
我又回来啦! 由于最近一直在做公司的项目,而且比较急.如今项目已经迭代到第三期,可以缓一缓了... 说实话,最近一直再用android做开发,而且时间也不宽裕,react-native有点生疏了. 好 ...
- Winform中子线程访问界面控件时被阻塞解决方案
public partial class WebData_Import : Form { //声明用于访问主界面的委托类型 public delegate void deleGetOrderdata( ...
- IT学习方法
IT 技术的发展日新月异,新技术层出不穷,具有良好的学习能力,能及时获取新知识.随时补充和丰富自己,已成为程序员职业发展的核心竞争力.本文中,作者结合多年的学习经验总结出了提高程序员学习能力的三个要点 ...
- Memcached内存管理模型分析
Memcached 是一个高性能的分布式内存对象缓存系统,它通过在内存中缓存数据和对象来减少读取数据库的次数,从而减轻RDBMS的负担,提高服务的速度.提升可扩展性.本文将基于memcached1.4 ...
- (原)使用vectot的.end()报错:iterators incompatible
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5070672.html 参考网址: http://blog.csdn.net/yxnyxnyxnyxny ...
- MAC OS中使用ll,la命令
在linux下习惯了使用ll.la等ls别名 用mac os发现没有这样的命令,很不方便. 其实只要在用户目录下建立一个脚本“.bash_profile”,并输入以下内容即可:alias ll='ls ...