您的位置:首页 > 编程语言 > C#

关于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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: