如何使用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地址相关推荐

  1. 在shell中获取当前机器的ip地址

    在shell中获取得到当前机器的ip地址 ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print ...

  2. 根据 设备名(br0/eth0/em0)称获取 当前机器的IP地址与子网掩码信息

    #!/usr/bin/env python ''' 根据 设备名(br0/eth0/em0)称获取 当前机器的IP地址与子网掩码信息 ''' import socket, struct, fcntl ...

  3. 如何在Node.js中获取本机本地IP地址

    最近在做Cloud related的项目时,遇到一个问题,就是如何在Node.js中获取本机的IP地址.Node.js提供的API中,只能获取本机的hostname. os = require('os ...

  4. Windows10中如何使用ADSL固定IP地址连接因特网

    Windows10中如何使用ADSL固定IP地址连接因特网 ADSL的网络连接组成包括含ADSL的电话线路,分离器,RJ-11电话线,ADSL调制解调器以及RJ-45网线.其中含ADSL的电话线路会通 ...

  5. Php正则表达式的应用———提取某网站中最新发表的代理ip地址

    Php正则表达式的应用---提取某网站中最新发表的代理ip地址 正则表达式的功能是非常强大的,主要三方面应用.1.判断指定的字符串是否具有指定的格式 2.查找具有指定格式的字符串 3. 将具有指定格式 ...

  6. 应用PHP正则表达式提取某网站中最新发表的代理ip地址

    Php正则表达式的应用---提取某网站中最新发表的代理 ip 地址 正则表达式的功能是非常强大的,主要三方面应用.1. 判断指定的字符串是否具有指定的格式 2.查找具有指定格式的字符串 3. 将具有指 ...

  7. linux ssh ip地址命令,关于Linux:在ssh会话中查找客户机的IP地址

    我有一个脚本,由使用ssh登录到服务器的人运行. 有没有办法自动找出用户连接的IP地址? 当然,我可以问用户(这是一个程序员的工具,所以没问题),但如果我刚刚发现的话,会更酷. 建议转到服务器故障,不 ...

  8. .NET中获取电脑名,IP地址,当前用户

    在.NET中获取一台电脑名,IP地址及当前用户名是非常简单,以下是我常用的几种方法,如果大家还有其它好的方法,可以回复一起整理: 1. 在ASP.NET中专用属性: 获取服务器电脑名: Page.Se ...

  9. java中获取当前服务器的Ip地址

    1.tomcat是一款免费的开源Web服务器,如果部署在本地,那么对应的那么为localhost,对应地址为127.0.0.1. 例子:可以通过http://localhost:8080/项目root ...

最新文章

  1. java 原子引用_Java 原子性引用 AtomicReference
  2. 最小二乘法C#实现,简单代码
  3. 南大cssci期刊目录_重磅!最新版CSSCI来源期刊目录(20192020)及增减变化!【南大核心】...
  4. Summer Training day4上帝与集合的正确用法 欧拉函数+降幂公式
  5. *【UVA - 10382】Watering Grass(贪心,区间覆盖问题,思维)
  6. 反射应用二:利用反射加配置文件实现多数据库的访问
  7. redhat7.3 启动系统报,A start job is running for Apply Kernel Variables的处理
  8. 一个能让html标签变成文本的html标签lt;xmpgt;
  9. php mysql 简单,你想不到的最简单php操作MySQL
  10. mysql 内存太大被杀_数据库mysqld进程频繁被杀解决方案[终]
  11. PD虚拟机在big sur系统下无法运行,怎样解决?
  12. 视频教程_干货视频教程分享
  13. spring定时器详解
  14. 计算机世界:“狗日的”腾讯 搅局者还是终结者
  15. Linux技术——lsof命令详解
  16. 【FPGA混沌】基于FPGA的混沌系统verilog实现
  17. stm32自定义usb_HID设备
  18. linux下qt使用谷歌拼音,GitHub - aron566/google_pinyinim: 谷歌拼音输入法移植至QT,纯widget实现...
  19. execute(),executeQuery(),executeUpdate()和executeBatch()的使用与区别
  20. 巨简单又好用的pygame游戏暂停继续方法

热门文章

  1. springboot @cacheable不起作用_Springboot学习记录13 使用缓存:整合redis
  2. data es集群master_Kubernetes Helm3 部署 ElasticSearch amp; Kibana 7 集群
  3. Python必备基本技能——命令行参数args详解
  4. 数据挖掘-matplotlib、numpy、pandas(二)
  5. 机器学习中的数学基础:(1.1)矩阵特征值和特征向量的几何意义
  6. c++中static_cast用法与uchar/char的区别
  7. ViT(vision transformer)原理快速入门
  8. keras 的 example 文件 lstm_stateful.py 解析
  9. time.h中的相关计时函数time,localtime,clock等详解
  10. linux mud 游戏,快刀幻想mud文字传奇-快刀幻想mud神器兑换码-快刀幻想mud下载v1.80-Linux公社...