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

原创 2004年12月29日 14:04:00

如何使用DNS类并得到机器的IP地址的技巧

介绍

这篇文章并不是技术纵览或大型讨论,而更像是关于如何得到IP地址或主机名称的技巧集锦。在 Win32 API编程中你可以使用NetWork API,在.NET平台中也是类似的。唯一的不同之处是你要找到并理解为完成这个任务需要什么名称空间(namespace)和类。在.NET平台中NetWork API存在于System.Net名称空间中。System.Net名称空间中的DNS类可以用来得到机器名称和IP地址。 DNS类提供类简单的域名解释函数。DNS 类为处理Internet域名(DNS)信息提供支持.这些返回的信息包括多重的IP地址和主机别名。返回的列表是一个集合或IPAddress对象数组。以下代码显示了如何通过给定的主机名称得到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在线文档。

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

如何使用DNS类并得到机器的IP地址的技巧 介绍 这篇文章并不是技术纵览或大型讨论,而更像是关于如何得到IP地址或主机名称的技巧集锦。在 Win32 API编程中你可以使用NetWork API,在...
  • jery_lee
  • jery_lee
  • 2004年07月27日 11:21
  • 812

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

如何使用DNS类并得到机器的IP地址的技巧 介绍 这篇文章并不是技术纵览或大型讨论,而更像是关于如何得到IP地址或主机名称的技巧集锦。在 Win32 API编程中你可以使用NetWork API,在....
  • 21aspnet
  • 21aspnet
  • 2007年03月24日 14:38
  • 3053

如何用C++编程获得某台机器的IP地址?

对于这个古老的问题,VC知识库的精华区以及以往的在线杂志中都有详尽不一的描述。本文提供的方法是一个比较完整的解决方案,并附有详细的实现细节。希望大家对这个问题有彻底的认识。其实,如果你熟悉 Windo...
  • 600000
  • 600000
  • 2002年12月04日 08:57
  • 782

C#如何获取本机网络ip地址

C#如何获取本机网络ip有几种方法获取本机局域网地址和网络地址。1.  获取本机局域网地址:使用IPHostEntry         static string GetLocalIp()     ...
  • dengta_snowwhite
  • dengta_snowwhite
  • 2010年12月01日 14:42
  • 14310

C#根据输入的IP地址查找出对于的城市区域信息

/// /// 根据IP 获取物理地址 /// /// Ip地址(116.19.105.62) /// ...
  • chenxiaomumu
  • chenxiaomumu
  • 2014年02月14日 11:50
  • 1288

C#编程之 如何获取本地和远程主机的IP及MAC地址

利用dns类和WMI规范获取IP及MAC地址 在C#编程中,要获取主机名和主机IP地址,是比较容易的.它提供的Dns类,可以轻松的取得主机名和IP地址.  示例: string strHostName...
  • friday5pm
  • friday5pm
  • 2007年04月06日 10:06
  • 1884

Java-通过IP地址获得域名和主机名

《JAVA开发实战1200》JAVA API 1.7
  • qq_25935763
  • qq_25935763
  • 2016年09月24日 23:18
  • 2265

c#中如何获取本机MAC地址、IP地址、硬盘ID、CPU序列号等系统信息

我们在利用C#开发桌面程序(Winform)程序的时候,经常需要获取一些跟系统相关的信息,例如用户名、MAC地址、IP地址、硬盘ID、CPU序列号、系统名称、物理内存等。 首先需要引入命名空间: u...
  • yongyong521
  • yongyong521
  • 2015年07月17日 11:16
  • 7194

根据主机名获取IP地址

根据主机名获取IP地址
  • wangyanming123
  • wangyanming123
  • 2016年04月04日 16:57
  • 265

Java 获取请求主机IP地址

本文向您介绍使用Java获取IP地址的方法,在request.getRemoteAddr()方法在使用方向代理失效的情况下,本文的方法依然可以获取真实地址。在JSP里,获取客户端的IP地址的方法是:r...
  • carl_china
  • carl_china
  • 2016年01月01日 12:45
  • 2826
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#中如何得到机器的IP地址
举报原因:
原因补充:

(最多只允许输入30个字)