zoukankan      html  css  js  c++  java
  • JAVA网络编程-Internet地址

    IP和DNS

    连接到Internet的设备称为节点,计算机节点称为主机.每个节点或主机都由至少一个唯一的数来标识,这称为Internet地址或者IP地址.目前大多数的IP地址是4个字节长,这被称作IPv4地址.不过,一小部分IP地址是16字节长,这被称作IPv6地址.IP地址对于人们来说是很难记忆的数字,为了避免到处携带记满IP地址的通讯录,Internet的设计者发明了域名系统(Domain Name System DNS).DNS将人们可以记忆的主机名与计算机可以记住的IP地址关联在一起。服务器通常至少有一个主机名。客户端往往有一个主机名,但也可能没有,特别是有些客户端的IP地址会在启动时动态指定。

    有些IP有多个DNS,多个域名对应一个IP地址。也有一个域名映射多个IP地址的情况,这时就要由DNS服务器负责随机选择一台机器来相应各个请求。每台连接到Internet的计算机都能访问到一个称为域名服务器的机器,它通常时一个运行特殊DNS软件的UNIX主机,这种软件了解不同主机名和IP地址之间的映射。大多数域名服务器只直到其本地网络上主机的地址,以及其他网站中一些域名服务器地址。如果客户端请求本地域名之外一个机器的地址,本地域名服务器就会询问远程位置的域名服务器,在将答案转发给请求者。

    大多数情况下,可以使用主机名而让DNS处理向IP地址的转换。只要能连接到一个域名服务器,就不需要担心你的机器,本地域名服务器和Internet其他部分之间传递主机名和地址的有关细节。前提是你的机器必须连接到Internet.

    InetAddress对象

    public static void main(String[] args) throws Exception {//通过域名获取IP
            InetAddress i = InetAddress.getByName("www.oreilly.com");
            System.out.println("~~~  " + i.getHostAddress());//104.86.0.99
            System.out.println("~~~  " + i.getHostName());//www.oreilly.com
        }
    public class Test {//通过域名获取所有地址
        public static void main(String[] args) throws Exception {
            InetAddress[] is = InetAddress.getAllByName("www.baidu.com");
            for(InetAddress address: is) {
                System.out.println("~~~  " + address.getHostAddress());
                System.out.println("~~~  " + address.getHostName());
            }
        }
    }

    ~~~ 110.242.68.3
    ~~~ www.baidu.com
    ~~~ 110.242.68.4
    ~~~ www.baidu.com

    public static void main(String[] args) throws Exception {//获取本机的主机名和IP地址
            InetAddress me = InetAddress.getLocalHost();
            System.out.println(me.getHostName());//DESKTOP-MLQ0UUB
            System.out.println(me.getHostAddress());//169.254.49.55
        }
    public static void main(String[] args) throws Exception {//测试主机是否可达
            InetAddress me = InetAddress.getByName("www.baidu.com");
            System.out.println(me.isReachable(1000));
    }
  • 相关阅读:
    centos7 安装jdk及mysql8
    centos7 挂载数据盘
    windows server r2 之如何设置共享文件夹访问不需要输入用户名和密码
    svn 常见问题记录
    设计模式之代理模式
    ASP.Net在64位环境开发部署常见问题
    oracle 之创建用户,表空间,授权,修改用户密码
    oracle 常用语句
    IIS服务器 远程发布(Web Deploy)配置 VS2010 开发环境 Windows Server 2008服务器系统
    vs2012使用64位IIS EXPRESS调试
  • 原文地址:https://www.cnblogs.com/zumengjie/p/14959200.html
Copyright © 2011-2022 走看看