![](/img/trans.png)
[英]How do I get the Local Network IP address of a computer programmatically?
[英]How can I determine if my computer's IP address falls under a specified network address?
string myHost = System.Net.Dns.GetHostName();
string myIP =
System.Net.Dns.GetHostByName(myHost).AddressList[0].ToString();
MessageBox.Show(myIP);
TextReader read = new StreamReader(//Text file with network address);
var ip = read.ReadLine();
read.Close();
if (ip == //Need help with this part)
MessageBox.Show("You are on the network");
else
MessageBox.Show("You are not on the network");
我可以获取我的计算机地址,但是我需要将其与网络地址进行比较,如果它属于该网络地址以显示该地址。
如果您的IP无效时程序崩溃,则可以将其更改为尝试捕获以检查该异常的尝试(运行并崩溃以查找异常)。 这就是我与Lidgren在多人游戏中验证IP的方式。
尽管这可能不是最好的方法,但它可以工作。
我建议可以在Codeplex上找到IPNetwork实用程序。 它非常灵活和强大。 它可以让您做很多事情,并且确定给定IP地址的网络就是其中之一。
http://ipnetwork.codeplex.com/
该代码应如下所示:
var ipnetwork = IPNetwork.Parse(ip);
if (ipnetwork.Contains(myIp)) {
// do some work...
查看ip是否在范围内的一种简单方法是将ip以及范围的开始和结束转换为long(可以编写一个函数,用于从IP地址转换为long)。 然后查看ip是否在两个数字之间。
例如:
要检查的IP:172.17.1.25-转换为long-> 172017001025
范围:
开始-172.0.0.0-转换为long-> 172000000000
结束-172.255.255.255-转换为long-> 172255255255
现在只需检查ip是否在开始值和结束值之间即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.