C#中如何得到机器的IP地址

 我来答
匿名用户
2018-06-11
展开全部
这两个方法是我一直在用的,都可正常获取到IP地址和Mac地址。
/// <summary>
/// 获取IP地址
/// </summary>
/// <returns>IP地址</returns>
public string GetLocalIP()
{
try
{
System.Net.NetworkInformation.NetworkInterface[] nics = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces();
foreach (System.Net.NetworkInformation.NetworkInterface adapter in nics)
{
if (adapter.NetworkInterfaceType == System.Net.NetworkInformation.NetworkInterfaceType.Ethernet)
{
var mac = adapter.GetPhysicalAddress();
System.Net.NetworkInformation.IPInterfaceProperties ip = adapter.GetIPProperties();
System.Net.NetworkInformation.UnicastIPAddressInformationCollection ipCollection = ip.UnicastAddresses;
foreach (System.Net.NetworkInformation.UnicastIPAddressInformation ipadd in ipCollection)
{
if (ipadd.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
{
return ipadd.Address.ToString();
}
}
}
}
}
catch { }
return null;
}
/// <summary>
/// 获取本机MAC地址
/// </summary>
/// <returns>本机MAC地址</returns>
public string GetMacAddress()
{
string mac = "";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"] == true)
{
mac = mo["MacAddress"].ToString().Replace(":", "").Replace("-", "").ToUpper();
break;
}
}
moc = null;
mc = null;
return mac;
}
Storm代理
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效... 点击进入详情页
本回答由Storm代理提供
赤水云
2015-11-19 · TA获得超过5029个赞
知道大有可为答主
回答量:2362
采纳率:86%
帮助的人:910万
展开全部
新人请查询相关手册,大神请按照自己意愿修改。
以下代码是通过给定的主机名称得到IP地址:
DNSUtility代码
namespace NKUtilities
{
using System;
using System.Net;
public class DNSUtility
{
public static int Main (string [] args)
{
String strHostName = new String ("");
if (args.Length == 0)
{
// 首先得到本地机器的主机名称
strHostName = DNS.GetHostName ();
Console.WriteLine ("Local Machine's Host Name: " + strHostName);
}
else
{
strHostName = args[0];
}
// 然后通过主机名称得到IP地址列表
IPHostEntry ipEntry = DNS.GetHostByName (strHostName);
IPAddress [] addr = ipEntry.AddressList;
for (int i = 0; i < addr.Length; i++)
{
Console.WriteLine ("IP Address {0}: {1} ", i, addr[i].ToString ());
}
return 0;
}
}
}
代码的解释
如果想得到本地机器的主机名,你可以不加参数调用GetHostName方法。然后你可以用返回的结果作为参数调用GetHostByName方法得到IPAddresses列表,然后遍历addresses集合得到主机的IP地址。

提示
确认在代码中已经包含了System.Net名称空间,否则编译器将不知道如何找到DNS类。同样,当使用VisualStudio.NET创建工程的时候,要确认系统已经包含System.NET.Dll。关于DNS类和System.Net名称空间的更详细的信息请参考.NET SDK在线文档。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式