获取IP地址

C#编程如何获取某台机器的IP地址?
(Northtibet发表于2002-10-10 21:29:58)

现在.NET风靡一时,用C#语言编程也成为一种时尚,本文告诉你如何进行C#编程获取某台机器的IP地址。在.NET的公共运行时中有一个名字空间System.Net,它具备有一些类使得网络编程易如反掌。其中有一个类叫Dns,使用其静态方法可以获取主机名和IP地址。下面是代码实现细节:
将下面的代码保存为 getip2.cs ,并按照下面所将的方法编译生成.exe文件。

// getip2.cs
//
// 本程序报告本机上每一块网卡的IP地址
// 命令行编译命令为:
// csc getip2.cs

// 请一定要在VS 7和.NET的环境变量中正确指定LIB库的路径;可以运行
// vsvars32.bat
//
using System;
using System.Net;                     // network stuff
using System.Collections;               // array iterator

//
// standard C# application class
//
class MainApp {

   // 应用程序入口点
   public static void Main() {

      // 显示主机名
      string hostname = Dns.GetHostName();
      Console.WriteLine("hostname = {0}", hostname);

      // 显示每个IP地址
      IPHostEntry hostent = Dns.GetHostByName(hostname); // 主机信息
      Array addrs = hostent.AddressList;            // IP地址数组
      IEnumerator it = addrs.GetEnumerator();       // 迭代器
      while(it.MoveNext()) {                     // 循环到下一个IP 地址
         IPAddress ip = (IPAddress)it.Current;      // 获得 IP 地址
         Console.WriteLine("Address: {0}", ip);     // 显示 IP地址
      }
   }
};

与C/C++代码相比,C#代码简单了许多。Dns 包装了相应的winsock函数和结构。用Dns.GetHostName 获取主机名,用Dns.GetHostByName 的到一个IPHostEntry 对象。.NET 类隐藏了初始化和终止,隐藏了别扭的hostent 结构,在数组中打包地址并不用你去操心IP地址的格式化问题。getip2 仅用了19 行C#代码,而相应的C/C+代码有50多行。在程序的简短方面,C#明显更胜一筹,只不过在第一次运行getip2时,加载.NET所耗费的时间有点不尽人意。

最新评论 [发表评论] 查看所有评论 推荐给好友 打印

偶是这样实现的,有问题吗
string str = "";
str = System.Net.Dns.GetHostName();
System.Net.IPHostEntry iphe = 
      System.Net.Dns.GetHostByName(str);
System.Net.IPAddress[] ip = iphe.AddressList;
for(int i = 0;i<ip.Length;i++)
   str += " -- " + ip[i].ToString();
MessageBox.Show(str); ( benbenysz 发表于 2006-7-29 9:52:00)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值