`
terry0501
  • 浏览: 305910 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

远程主机的域名

 
阅读更多

该方法可以得到远程主机的域名,也可以得到本机名。

getHostName方法的定义如下:
public String getHostName()
下面是三种创建InetAddress对象的方式,在这三种方式中,getHostName返回的值是不同的。

1.使用getLocalHost方法创建InetAddress对象
如果InetAddress对象是用getLocalHost方法创建的,getHostName返回的是本机名。如下面的代码所示:

InetAddress address = InetAddress.getLocalHost();
System.out.println(address.getHostName()); // 输出本机名


2.使用域名创建InetAddress对象
用域名作为getByName和getAllByName方法的参数调用这两个方法后,系统会自动记住这个域名。当调用getHostName方法时,就无需再访问DNS服务器,而是直接将这个域名返回。如下面的代码所示:
InetAddress address = InetAddress.getByName("www.oracle.com");
System.out.println(address.getHostName()); // 无需访问DNS服务器,直接返回域名


3.使用IP地址创建InetAddress对象
使用IP地址创建InetAddress对象时(getByName、getAllByName和getByAddress方法都可以通过IP地址创建InetAddress对象),并不需要访问DNS服务器。因此,通过DNS服务器查找域名的工作就由getHostName方法来完成。如果这个IP地址不存在或DNS服务器不允许进行IP地址和域名的映射,getHostName方法就直接返回这个IP地址。如下面的代码所示:

 

InetAddress address = InetAddress.getByName("141.146.8.66");
System.out.println(address.getHostName()); // 需要访问DNS服务器才能得到域名
InetAddress address = InetAddress.getByName("1.2.3.4"); // IP地址不存在
System.out.println(address.getHostName()); // 直接返回IP地址

从上面的三种情况可以看出,只有通过使用IP地址创建的InetAddress对象调用getHostName方法时才访问DNS服务器。在其他情况,getHostName方法并不会访问DNS服务器,而是直接将域名或本机名返回。下面的代码演示了在不同情况下如何使用getHostName方法,并计算了各种情况所需的毫秒数。

 

package mynet;

import java.net.*;

public class DomainName
{
public static void main(String[] args) throws Exception
{
long time = 0;
// 得到本机名
InetAddress address1 = InetAddress.getLocalHost();
System.out.println("本机名: " + address1.getHostName());
// 直接返回域名
InetAddress address2 = InetAddress.getByName("www.oracle.com");
time = System.currentTimeMillis();
System.out.print("直接得到域名: " + address2.getHostName());
System.out.println(" 所用时间:"
+ String.valueOf(System.currentTimeMillis() - time) + " 毫秒");
// 通过DNS查找域名
InetAddress address3 = InetAddress.getByName("141.146.8.66");
System.out.println("address3: " + address3); // 域名为空
time = System.currentTimeMillis();
System.out.print("通过DNS查找域名: " + address3.getHostName());
System.out.println(" 所用时间:" + String.valueOf(System.currentTimeMillis() - time)+ " 毫秒");
System.out.println("address3: " + address3); // 同时输出域名和IP地址
}
}

运行结果:

本机名: ComputerName
直接得到域名: www.oracle.com 所用时间:0 毫秒
address3: /141.146.8.66
通过DNS查找域名: bigip-otn-portal.oracle.com 所用时间:92 毫秒
address3: bigip-otn-portal.oracle.com/141.146.8.66

 

从上面的运行结果可以看出,第一个毫秒数是0,而第二个毫秒数是92。这说时,使用域名创建的InetAddress对象在使用getHostName方法时并不访问DNS服务器,而使用IP地址创建的InetAddress对象在使用getHostName方法时需要访问DNS服务器。对于第三个毫秒数,可能多次运行DomainName后会越来越小,这是因为DNS服务器的缓存的缘故。但一般这个数都会比0大。也许有很多人会问,第二行和第四行得到的域名怎么不一样,其实www.oracle.com和bigip-otn-portal.oracle.com都是oracle的域名,我们也可以通过http:// bigip-otn-portal.oracle.com来访问oracle的官方网站。至于这两个域名有什么区别,将在下面的文章中讨论。


文章转自Java中文网:http://www.javaweb.cc/other/code/181595.shtml

分享到:
评论

相关推荐

    数据王域名虚拟主机管理系统 v1.0.rar

    让购买更容易 续费更简单支持多家域名注册接口,域名实时注册,无需人工干涉 更专业 更便捷超强的灾难恢复功能 快速恢复所有站点设置 告别重装系统的漫长设置在线重启服务器和IIS服务功能,无须远程连接服务器 一样...

    redis服务器允许远程主机访问的方法

    若远程主机需要访问redis服务器,可以修改redis.conf配置文件 bind字段默认为: bind 127.0.0.1 这样只能本机访问redis 若允许远程主机访问,可注释掉bind行 或者 将bind 127.0.0.1改为: bind 0.0.0.0 在远程主机...

    nat123全端口映射P2P域名解析 v1.140826.zip

    动态域名解析,轻松绑定动态公网IP,稳定网站服务,同时支持多台主机启用负载均衡和故障转移。 网站发布,访问内网,域名解析管理,就用nat123一步搞定。 在公司,小区宽带,出租屋,校园网,网吧,教育网,等网络...

    EasyHost虚拟主机管理 v3.0.rar

    EasyHost虚拟主机系统是针对网络公司销售域名、主机、邮局、数据库等产品时效率低、管理难等问题而自主研发的集产品自动化开通、管理、续费、升级等功能为一体的软件系统。通过多年的改进与运作,软件已具有功能强大...

    远程控制软件QuickIP

     特有的主机定位功能,使用该功能在不知道远程机器的IP地址或域名的情况下都能迅速连接到远程主机。  QuickIP可用于服务器管理、远程资源共享、网吧机器管理、远程办公、远程教育、排除故障、远程监控等多种...

    远程控制软件(QuickIP) 8.30简体中文版.zip

    特有的主机定位功能,使用该功能在不知道远程机器的IP地址或域名的情况下都能迅速连接到远程主机。QuickIP可用于服务器管理、远程资源共享、网吧机器管理、远程办公、远程教育、排除故障、远程监控等多种应用场合。

    因特网技术综合练习(六)

    其中( ftp )命令可用于远程主机之间的文件传送;( ping )命令通过ICMP协议来检测计算机的IP配置是否正确;( telnet )命令用来远程登录到其它主机;( arp )命令可以显示计算机中的IP地址与MAC地址映射表。( ...

    虚拟主机管理(功能强大,全面,智能)

    虚拟主机系统是针对网络公司销售域名、主机、邮局、数据库等产品时效率低、管理难等问题而自主研发的集产品自动化开通、管理、续费、升级等功能为一体的软件系统。通过多年的改进与运作,软件已具有功能强大、安全...

    大作业计算机网络.doc

    (25分) 答: DNS实现主机域名和IP地址之间的解析。 假设某个网络的计算机要访问 www.baidu.com 首先,该台计算机的解析器向其本地域名服务器发出请求,查寻"www.baidu.com"的IP 地址,如果没有该纪录,则向上一级...

    nat123动态域名解析P2P全端口映射 v1.151123.zip

    动态域名解析,轻松绑定动态公网IP,稳定网站服务,同时支持多台主机启用负载均衡和故障转移。 网站发布,访问内网,域名解析管理,就用nat123一步搞定。 在公司,小区宽带,出租屋,校园网,网吧,教育网,等网络...

    远程控制软件 QuickIP 8.22 破解版 特别版

     特有的主机定位功能,使用该功能在不知道远程机器的IP地址或域名的情况下都能迅速连接到远程主机。  QuickIP可用于服务器管理、远程资源共享、网吧机器管理、远程办公、远程教育、排除故障、远程监控等多种应用...

    N点虚拟主机管理系统(NPOINT) v1.9.6.zip

     执行权限、在线压缩及解压、自定义错误消息、域名绑定、自定义MIME类型、等。 4、支持纯FTP主机的开设,并支持子FTP帐号的开设及管理。 5、支持WINWEBMAIL企业邮局系统。 6、支持SQL Server数据库和MySQL数据库...

    linux通过域名获取ip地址

    通过域名向远程的DNS服务器获取ip地址,程序中也把通过ip向DNS获取域名的逻辑写完了,但由于程序中把获取类型写死了,因此本程序在没有修改源码的情况下只支持通过域名解析ip的需求。使用方法在程序开头有备注。

    互动网络域名主机独立分销管理系统 v1.1

    环境采用ASP+ACCESS基础开发,简单易用,通过远程API接口与上级服务商通信,让使用者能在简单快捷的操作下轻松完成域名及主机IDC等业务实时申请、开通及续费管理功能. 管理后台:http://您的域名/adm 管理员ID:admin ...

    小牛远程控制特别版VIC版

    可以和远程主机进程语音对话! 【7】插件功能:用户可以按自己的需要添加和使用插件(如服务端隐身插件,使用服务端隐藏进程、服务、文件等。) 【8】注册表模拟器:远程注册表操作就像操作本地注册表一样方便! 【9...

    秘奥远程网络工具 v1.08.zip

    通过秘奥公司用户注册认证后,主机服务器运行外网通程序,公司异地机构通过ADSL运行“”秘奥软件系列产品“”程序,自动连入公司总部SQLSERVER数据库,实现远程软件网络接入方式。 秘奥远程网络工具 v1.08更新: ...

    N点虚拟主机管理系统(NPOINT) v1.9.6

     执行权限、在线压缩及解压、自定义错误消息、域名绑定、自定义MIME类型、等。 4、支持纯FTP主机的开设,并支持子FTP帐号的开设及管理。 5、支持WINWEBMAIL企业邮局系统。 6、支持SQL Server数据库和MySQL数据库...

    开源团免费虚拟主机管理系统

    ④ 强大的虚拟主机管理功能,如:站点状态、FTP帐号状态、日志状态、FTP密码、默认文档、自定义错误页面、绑定域名、自定义脚本错误消息 、IP访问限制、关闭/恢复站点执行权限、在线压缩、在线解压缩、.NET版本切换...

    宏杰网络虚拟主机实时开通系统 v2.2.500 特别版

    版本:2.2.500特别版 为了庆祝本主机程序注册数量超过...支持修改FTP密码,修改绑定域名,修改自定义404错误提示,自主控制主机运行、停止和暂停。(包含了几乎所有的主机管理功能,具体功能函在提供的ASP里有详细说明)

    N点虚拟主机管理系统

    执行权限、在线压缩及解压、自定义错误消息、域名绑定、自定义MIME类型、等。 4、支持纯FTP主机的开设,并支持子FTP帐号的开设及管理。 5、支持WINWEBMAIL企业邮局系统。 6、支持SQL Server数据库和MySQL数据库的...

Global site tag (gtag.js) - Google Analytics