如何获取主机的IP址址


这篇文章,我们不准备大规模的讨论技术问题。只是向大家介绍一下我们将如何获得一台主机的IP地址。在Win32 API中我们可以使用NetWork API完成这项工作,但是在.Net平台下我们应当如何做呢?其实操作方法与API差不多,只是大家要理解一下Namespace与Class。本站这方面的文章很多,关于Namespace与Class的内容就不介绍了。

.Net平台存在System.Net命名空间,其中的DNS类,提供了一些方法可以获取服务器的服务名或者是IP地址。DNS是一个静态类,所以它能够直接创建类实例。闲话少说,我们来看具体的程序:

namespace NKUtilities
{
using System;
using System.Net;

public class DNSUtility
{
public static int Main (string [] args)
{

String strHostName = new String ("");
if (args.Length == 0)
{
// 获得本地的IP地址
//首先获了本地机的主机名
strHostName = DNS.GetHostName ();
Console.WriteLine ("Local Machine's Host Name: " + strHostName);
}
else
{
strHostName = args[0];
}

// 接着使用主机名,获取IP地址列表
// 一台主机可能不只一个IP哦,不要被某些人误导了,呵呵,想想以前的163与169就知道了
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方法,以获取IPAddress列表。最后是输出列表中的IP地址。

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3