//////////////////////////////////////////////////////////////////// // 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 地址 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多行。