设为首页 加入收藏

TOP

Java网络编程之查找Internet地址
2015-07-26 20:41:52 来源: 作者: 【 】 浏览:80
Tags:Java 网络编程 查找 Internet 地址

  连接到Internet上计算机都有一个称为Internet地址或IP地址的唯一的数来标识。由于IP很难记住,人们设计了域名系统(DNS),DNS可以将人们可以记忆的主机名与计算机可以记忆的IP地址联系在一起。通常一台主机映射一个IP地址。有时一个主机名映射多个IP。这时就由DNS负责随机选择一台机器来响应请求,例如业务流量很大的Web网站,它将负载分到多个系统上。


  IP地址是IP使用的32为或128位无符号数字,它是一种低级协议,UDP和TCP协议都是在它的基础上构建的。


  IP地址的文本表示形式是特定于地址系列的。


  IPV4地址一般写为四个无符号字节,每个字节范围从0到255。这种方式又称为点分四段格式。eg:192.168.1.119。


  InetAddress类表示互联网协议(IP)地址,是Java对IP地址的高级表示。用于其他大多数网络类。


  InetAddress类的实例包含IP地址,还可能包含相应的主机名(取决于它是否用主机名构造或者是否已执行反向主机名解析)。


  InetAddress类没有公共构造函数,可以通过其静态方法返回适当初始化的InetAddress对象。



ps:需要只指出的是,这些方法不只是使用它们的参数来设置内部字段,还需要进行网络连接来获取所需的所有信息。这个类的其他方法则主要使用上述方法提供的信息来工作。


  由于DNS查找成本相对较高,InetAddress类缓存查找的结果,可以通过networkaddress.cache.ttl指定成功的DNS查找在Java缓存中保留的秒数。除了在InetAddress类中的本地化缓存,本地主机、本地域名服务器和Internet中其他地方的DNS服务器也会缓存各种查找结果。


public class Demo1
{


? ? public static void main(String[] args)
? ? {
? ? ? ? InetAddress ina;
? ? ? ? try
? ? ? ? {
? ? ? ? ? ? ina = InetAddress.getLocalHost();
? ? ? ? ? ? System.out.println(ina);
? ? ? ? ? ?
? ? ? ? ? ? System.out.println(ina.getAddress());//返回此 InetAddress 对象的原始 IP地址
? ? ? ? ? ?
? ? ? ? ? ? System.out.println(ina.getHostAddress());// 返回 IP 地址字符串(以文本表现形式)。
? ? ? ? ? ?
? ? ? ? ? ? System.out.println(ina.getHostName()); //获取此 IP 地址的主机名
? ? ? ? ? ?
? ? ? ? ? ? System.out.println(ina.getLocalHost()); //返回本地主机
? ? ? ? }
? ? ? ? catch (UnknownHostException e)
? ? ? ? {
? ? ? ? ? ? // TODO 自动生成的 catch 块
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? ? ? InetAddress ina1;
? ? ? ? try
? ? ? ? {
? ? ? ? ? ? ina1 = InetAddress.getByName("192.168.1.119");
? ? ? ? ? ? System.out.println(ina1);
? ? ? ? }
? ? ? ? catch (UnknownHostException e)
? ? ? ? {
? ? ? ? ? ? // TODO 自动生成的 catch 块
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? ? ? InetAddress[] ina2;
? ? ? ? try
? ? ? ? {
? ? ? ? ? ? ina2 = InetAddress.getAllByName("www.microsoft.com");
? ? ? ? ? ? for(int i=0;i? ? ? ? ? ? ? ? System.out.println(ina2[i]);
? ? ? ? } catch (UnknownHostException e)
? ? ? ? {
? ? ? ? ? ? // TODO 自动生成的 catch 块
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? }
}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java网络编程之TCP通信 下一篇Java集合系列

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: