天天看点

C# 网络编程之获取本机名、ip地址、域名、物理位置

在c#网络编程中,主机域名与ip之间能相互转换,同时dns中有dns类、iphostentry类、ipaddress类、dnspermission类实现dns的一些简单功能。

下面主要讲述一个c#的windows应用程序,实现以下功能:

(1).获取主机名称;

(2).获取本地电脑的ip地址;

(4).根据其远程网址的ip地址,查找其物理位置;

(5).根据物理位置实现查找当地位置的天气预报(未实现).

具体步骤如下:

1.创建c#项目

点击”文件”->”新建项目”->”c# windows应用程序”,选择存储位置与项目名称,创建一个ipaddress项目.

2.添加控件

在”解决方案”中右键form1.cs,查看其代码设计器.设置如下图所示的控件,界面设计的具体属性如下:

C# 网络编程之获取本机名、ip地址、域名、物理位置

6个label控件,其text属性分别对应”主机名称”、”ip地址”..和”天气预报”;

6个textbox控件,其中除”查询远程域名(输入)”是输入形如:www.xxx.com外,其余均是输出相应的获取结果,对应的textbox1-textbox6;

1个richtextbox控件,提供高级输入编辑文本功能控件,左边textbox中显示的结果在此处同时显示汇总结果;

2个button控件,分别是”开始查询”和”清除记录”,清空richtextbox中内容.

3.添加新的命名控件

//添加新的命名空间

usingsystem.net;

usingsystem.io;

usingsystem.xml;

在.net平台对dns类的命名控件是system.net:调用其函数方法获取本地名称、ip地址、域名ip间转换.system.io可以提供编码io流的操作(似乎没用到),system.xml是根据ip地址,通过访问”有道”网站查询实际物理位置中获取xml网页等操作使用.

4.双击”开始扫描”按钮,添加相应的事件代码

privatevoidbutton1_click(objectsender,eventargse)

{

//添加代码实现具体功能操作,具体如下

}

如果想添加"清除记录"功能,则双击"清除记录"按钮,添加下面代码即可实现:

privatevoidbutton2_click(objectsender,eventargse)

richtextbox1.clear(); //清理记录

具体代码如下:

5.运行结果

C# 网络编程之获取本机名、ip地址、域名、物理位置

输出结果如下图所示:

C# 网络编程之获取本机名、ip地址、域名、物理位置

可以看到,我的主机名称为delldell及本地的ip地址.同时查询的google的相应ip地址很多,在richtextbox中显示远程域名的ip地址,其中物理地址为最后一个ip地址74.125.31.104的物理位置为“美国加利福利亚州山景市谷歌公司”

(注意:天气预报我没有做该功能,但原理相同通过访问一个天气预报的网站,根据物理位置显示相应的天气,原理相同)

6.总结

这是我最近学习c#网络编程的自己编写的一个实例,通过获取ip地址你可以做很多的事情,譬如qq等网站显示的你所在地天气预报、判断异地登陆、黑客攻击等,这是一个很基础的system.net\system.xml的相关方法函数的使用。

而在根据ip地址输出判断其物理位置中使用的是popping_dancer的博客知识,上面的代码“四.ip地址查找对应的物理位置”也是引用转载他的文章,希望大家也能看看他的这篇文章,非常有用。非常感谢博主及他的文章,网址如下:

<a target="_blank" href="http://blog.csdn.net/popping_dancer/article/details/8297038">http://blog.csdn.net/popping_dancer/article/details/8297038</a>

他采用的方法是通过获取ip地址,访问“有道”网址查看对应的物理位置,上面访问google其访问过程如下图所示:

C# 网络编程之获取本机名、ip地址、域名、物理位置

上面仅仅是我对c#网络编程,dns、域名、ip地址、物理位置转换之间的一些认识,仅供大家学习与了解,如果有错误或不足之处,见谅!希望能帮助大家。

( 2013-7-8 by:eastmount)