当前位置: 首页 > news >正文

IP地址获得主机名称

IP地址获得主机名称


1. 根据IP地址获得主机名称

         ///   <summary>
        
///  根据IP地址获得主机名称
        
///   </summary>
        
///   <param name="ip"> 主机的IP地址 </param>
        
///   <returns> 主机名称 </returns>
         public   string  GetHostNameByIp( string  ip)
        {
            ip 
=  ip.Trim();
            
if  (ip  ==   string .Empty)
                
return   string .Empty;
            
try
            {
                
//  是否 Ping 的通
                 if  ( this .Ping(ip))
                {
                    System.Net.IPHostEntry host 
=  System.Net.Dns.GetHostEntry(ip);
                    
return  host.HostName;
                }
                
else
                    
return   string .Empty;
            }
            
catch  (Exception)
            {
                
return   string .Empty;
            }
        }

说明:如果你的电脑可以上网你甚至可以查询到:IP地址“ 64.233.189.104”是 Google 的一个名为“ hk-in-f104.google.com”的主机的IP地址。



关于代码中 this.Ping(ip) 方法后面再说。
既然说了如何“根据IP地址获得主机名称”,那就要再说说如何“根据主机名获得主机的IP地址”吧。

2. 根据主机名获得主机的IP地址
         ///   <summary>
        
///  根据主机名(域名)获得主机的IP地址
        
///   </summary>
        
///   <param name="hostName"> 主机名或域名 </param>
        
///   <example> GetIPByDomain("pc001"); GetIPByDomain("www.google.com"); </example>
        
///   <returns> 主机的IP地址 </returns>
         public   string  GetIpByHostName( string  hostName)
        {
            hostName 
=  hostName.Trim();
            
if  (hostName  ==   string .Empty)
                
return   string .Empty;
            
try
            {
                System.Net.IPHostEntry host 
=  System.Net.Dns.GetHostEntry(hostName);
                
return  host.AddressList.GetValue( 0 ).ToString();
            }
            
catch  (Exception)
            {
                
return   string .Empty;
            }
        }

说明:如果你的电脑可以上网你甚至可以查询到:“ www.google.com”的IP地址是“ 64.233.189.104”。



最后,再说说C#实现简单的 Ping 的功能,用于测试网络是否已经联通。

3. C#实现简单的 Ping 的功能,用于测试网络是否已经联通
         ///   <summary>
        
///  是否能 Ping 通指定的主机
        
///   </summary>
        
///   <param name="ip"> ip 地址或主机名或域名 </param>
        
///   <returns> true 通,false 不通 </returns>
         public   bool  Ping( string  ip)
        {
            System.Net.NetworkInformation.Ping p 
=   new  System.Net.NetworkInformation.Ping();
            System.Net.NetworkInformation.PingOptions options 
=   new  System.Net.NetworkInformation.PingOptions();
            options.DontFragment 
=   true ;
            
string  data  =   " Test Data! " ;
            
byte [] buffer  =  Encoding.ASCII.GetBytes(data);
            
int  timeout  =   1000 //  Timeout 时间,单位:毫秒
            System.Net.NetworkInformation.PingReply reply  =  p.Send(ip, timeout, buffer, options);
            
if  (reply.Status  ==  System.Net.NetworkInformation.IPStatus.Success)
                
return   true ;
            
else
                
return   false ;
        }
posted on 2008-12-18 16:25 Jansen. 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/114621141/archive/2008/12/18/1357646.html

相关文章:

  • python class和class(object)用法区别
  • Eclipse Error Cannot change version of project facet Dynamic Web Moudle to 3.0
  • asp.net控件开发基础(1)
  • (八十八)VFL语言初步 - 实现布局
  • js中包含中文注释引起的错误
  • CSS3选择器:nth-child与:nth-of-type区别
  • 数据集成在ODS项目的应用模式
  • hadoop无法启动DataNode问题
  • 解决ajax.net 1.0中文乱码问题
  • 如何动态添加菜单/菜单项、子菜单、右键菜单
  • java泛型中?和T区别
  • 介绍一款开源的正则表达式测试工具-Regex Tester
  • Asp.Net中CS中获取物理路径
  • npm 安装
  • Delphi 与 DirectX 之 DelphiX(50): TDIB.DoLightness();
  • echarts花样作死的坑
  • GraphQL学习过程应该是这样的
  • Java 内存分配及垃圾回收机制初探
  • Java新版本的开发已正式进入轨道,版本号18.3
  • js作用域和this的理解
  • Kibana配置logstash,报表一体化
  • Koa2 之文件上传下载
  • Laravel 实践之路: 数据库迁移与数据填充
  • Ruby 2.x 源代码分析:扩展 概述
  • Spring框架之我见(三)——IOC、AOP
  • vue自定义指令实现v-tap插件
  • windows下mongoDB的环境配置
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 聊聊flink的BlobWriter
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 听说你叫Java(二)–Servlet请求
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • #1015 : KMP算法
  • #pragma once
  • (6)STL算法之转换
  • (8)STL算法之替换
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (ros//EnvironmentVariables)ros环境变量
  • (八)Flask之app.route装饰器函数的参数
  • (附源码)计算机毕业设计高校学生选课系统
  • (九)信息融合方式简介
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (十五)使用Nexus创建Maven私服
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • .chm格式文件如何阅读
  • .Net Web窗口页属性
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET 中让 Task 支持带超时的异步等待
  • .Net8 Blazor 尝鲜
  • .Net转前端开发-启航篇,如何定制博客园主题
  • @开发者,一文搞懂什么是 C# 计时器!
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)