关于C# 获取IP的问题
2012-11-02 14:45
288 查看
[]
private string GetLocalIp()
{
string hostname;
IPHostEntry localhost;
IPAddress localaddr;
hostname = System.Net.Dns.GetHostName();
localhost = System.Net.Dns.GetHostByName(hostname);
localaddr = localhost.AddressList[0];
return localaddr.ToString();
}
我使用以上代码进行获取IP,不过VS2010提示System.Net.Dns.GetHostByName(hostname);是过时代码,我应该用什么代码替换??
private string GetLocalIp()
{
string hostname;
IPHostEntry localhost;
IPAddress localaddr;
hostname = System.Net.Dns.GetHostName();
localhost = System.Net.Dns.GetHostEntry(hostname);
localaddr = localhost.AddressList[0];
return localaddr.ToString();
}
游戏玩家你连问题都不看吗??
游戏玩家你连答案也不看吗?
额,我的错
我再就是个问题,我有一个虚拟机,虚拟机再就是一个IP,我如何分辨,再就是我的机器装有IPV6,这又如何分辨
public static void DoGetHostEntry(string hostname)
{
IPHostEntry host;
host = Dns.GetHostEntry(hostname);
Console.WriteLine("GetHostEntry({0}) returns:", hostname);
foreach (IPAddress ip in host.AddressList)
{
Console.WriteLine(" {0}", ip);
}
}
看这个例子,AddressList是一个包含全部IP地址的列表,不过这里localaddr = localhost.AddressList[0];
只用了第一个,能够考虑返回AddressList取得这个列表。
这个我明白,不过不同的机器有不同的情况,人为能够分辨出哪个是使用的,不过把软件应用于电脑,恰好有多个IP(比如有虚拟机),我如何找出他真正的局域网内的IP呢??望回答,谢谢
这个就不是容易的程序能判断的了,看下面这种方法:
游戏玩家们都知道网卡的MAC地址能够从DOS窗口中通过输入"ipconfig /all"命令运行结果获得,那么这个问题的具体内容是:
在C#中运行一个dos命令,并截取相关输出、输出流。
具体代码如下:
tbResult.Text = "";
ProcessStartInfo start = new ProcessStartInfo("Ping.exe"); //设置运行的命令行文件问ping.exe文件,这个文件游戏系统会游戏玩家你自己找到
//假如是其它exe文件,则有可能需要指定详细路径,如运行winRar.exe
start.Arguments = txtCommand.Text; //设置命令参数
start.CreateNoWindow = true; //不显示dos命令行窗口
start.RedirectStandardOutput = true; //
start.RedirectStandardInput = true; //
start.UseShellExecute = false; //是否指定操作游戏系统外壳进程启动程序
Process p=Process.Start(start);
StreamReader reader = p.StandardOutput; //截取输出流
string line = reader.ReadLine(); //每次读取一行
while (!reader.EndOfStream)
{
tbResult.AppendText(line+" ");
line = reader.ReadLine();
}
p.WaitForExit(); //等待程序执行完退出进程
p.Close(); //关闭进程
reader.Close(); //关闭流
这样能够获得网卡的Description,这个是网卡的型号,VMware的好像都是VMNet开头的吧,Virtual PC与Virtual Box是什么就不记得了,针对每种虚拟机来判断吧。该文章转自[花果山动漫游戏网]原文链接:http://www.hgs521.com/pciphone/2011/0213/45217.html
private string GetLocalIp()
{
string hostname;
IPHostEntry localhost;
IPAddress localaddr;
hostname = System.Net.Dns.GetHostName();
localhost = System.Net.Dns.GetHostByName(hostname);
localaddr = localhost.AddressList[0];
return localaddr.ToString();
}
我使用以上代码进行获取IP,不过VS2010提示System.Net.Dns.GetHostByName(hostname);是过时代码,我应该用什么代码替换??
private string GetLocalIp()
{
string hostname;
IPHostEntry localhost;
IPAddress localaddr;
hostname = System.Net.Dns.GetHostName();
localhost = System.Net.Dns.GetHostEntry(hostname);
localaddr = localhost.AddressList[0];
return localaddr.ToString();
}
游戏玩家你连问题都不看吗??
游戏玩家你连答案也不看吗?
额,我的错
我再就是个问题,我有一个虚拟机,虚拟机再就是一个IP,我如何分辨,再就是我的机器装有IPV6,这又如何分辨
public static void DoGetHostEntry(string hostname)
{
IPHostEntry host;
host = Dns.GetHostEntry(hostname);
Console.WriteLine("GetHostEntry({0}) returns:", hostname);
foreach (IPAddress ip in host.AddressList)
{
Console.WriteLine(" {0}", ip);
}
}
看这个例子,AddressList是一个包含全部IP地址的列表,不过这里localaddr = localhost.AddressList[0];
只用了第一个,能够考虑返回AddressList取得这个列表。
这个我明白,不过不同的机器有不同的情况,人为能够分辨出哪个是使用的,不过把软件应用于电脑,恰好有多个IP(比如有虚拟机),我如何找出他真正的局域网内的IP呢??望回答,谢谢
这个就不是容易的程序能判断的了,看下面这种方法:
游戏玩家们都知道网卡的MAC地址能够从DOS窗口中通过输入"ipconfig /all"命令运行结果获得,那么这个问题的具体内容是:
在C#中运行一个dos命令,并截取相关输出、输出流。
具体代码如下:
tbResult.Text = "";
ProcessStartInfo start = new ProcessStartInfo("Ping.exe"); //设置运行的命令行文件问ping.exe文件,这个文件游戏系统会游戏玩家你自己找到
//假如是其它exe文件,则有可能需要指定详细路径,如运行winRar.exe
start.Arguments = txtCommand.Text; //设置命令参数
start.CreateNoWindow = true; //不显示dos命令行窗口
start.RedirectStandardOutput = true; //
start.RedirectStandardInput = true; //
start.UseShellExecute = false; //是否指定操作游戏系统外壳进程启动程序
Process p=Process.Start(start);
StreamReader reader = p.StandardOutput; //截取输出流
string line = reader.ReadLine(); //每次读取一行
while (!reader.EndOfStream)
{
tbResult.AppendText(line+" ");
line = reader.ReadLine();
}
p.WaitForExit(); //等待程序执行完退出进程
p.Close(); //关闭进程
reader.Close(); //关闭流
这样能够获得网卡的Description,这个是网卡的型号,VMware的好像都是VMNet开头的吧,Virtual PC与Virtual Box是什么就不记得了,针对每种虚拟机来判断吧。该文章转自[花果山动漫游戏网]原文链接:http://www.hgs521.com/pciphone/2011/0213/45217.html
相关文章推荐
- 关于获取客户端ip的问题
- C#关于HttpClient的应用(一):获取IP所在的地理位置信息
- 关于树莓派putty终端链接ip获取问题
- 关于C++调用C#封装的dll后,获取C#中string返回值的问题
- 关于C#中用WMI获取系统信息问题
- 关于C# 获取不到safari浏览器Cookie的问题
- 关于C#中的Request.QueryString.get()获取不到值的问题
- 关于获取本机ip的问题
- 关于easyui获取c#后台数据报错 Cannot read property 'length' of undefined的问题
- 关于电脑自动获取和静态IP的问题
- 关于Java获取本地服务器IP的问题
- 关于android4.0 获取手机IP地址的问题
- 关于超过255台电脑的内网IP规划问题
- 关于没有SD卡的手机在获取外部存储时的问题
- android红米等关于读取本地文件夹图片获取路径的问题的解决
- 关于Picasso回调获取bitmap第一次加载失败的问题
- 关于finfo_file函数获取文件mime值验证出错的问题
- 关于C#操作WPS和office兼容性的问题
- 关于获取u盘,移动硬盘设备信息的问题
- 关于java获取Oracle中date类型字段问题