博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中如何得到机器的IP地址
阅读量:1981 次
发布时间:2019-04-27

本文共 1209 字,大约阅读时间需要 4 分钟。

如何使用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在线文档。 
 

转载地址:http://rxgpf.baihongyu.com/

你可能感兴趣的文章
JAVA学习笔记6 - 数组
查看>>
JAVA学习笔记8 - Stream 和 File I/O
查看>>
JAVA学习笔记9 - 异常
查看>>
JAVA学习笔记10 - 继承
查看>>
JAVA学习笔记11 - 接口interface
查看>>
JAVA学习笔记12 - 包package
查看>>
Android 开发学习笔记 00 - Getting Started
查看>>
【学习笔记】Android Activity
查看>>
【学习笔记】Android Fragments
查看>>
Android使用Retrofit_00_Getting Started
查看>>
Android使用Retrofit_01_OAuth2 + GitHub
查看>>
Django oauth toolkit + Android + Retrofit 实现 OAuth2 的 access token 获取
查看>>
Android + Django + OAuth2 + Stub Authenticator
查看>>
Django + REST学习笔记
查看>>
Android Sync Adapter (使用Stub Content Provider) 笔记
查看>>
诡异的 Scroll view may have only one direct child placed within it 错误
查看>>
【转载】将Ubuntu16.04 中gedit在仅显示一个文件时显示文件名tab
查看>>
fstream 对象多次使用时注意clear
查看>>
调试 LenaCV 3D Camera (Linux)
查看>>
OpenCV杂记 - Mat in C++
查看>>