pingを呼び出すjavaのメソッドとInetAddressクラスの使用

Javaは、ネットワーク用のjava.netパッケージを提供します。パッケージの下のURLやURLConnectionなどのクラスは、プログラムでアクセスされたWebサービスの機能を提供します。
Javaは、IPアドレスを表すInetAddressクラスを提供します。
IntetAddressにはコンストラクターはありませんが、IntAddressインスタンスを取得するために次の2つの静的メソッドを提供します。

  1. getByName():ホストに応じて対応するInetAddrressオブジェクトを取得します。
  2. getByAddress():元のIPアドレスに従って対応するInetAddress()オブジェクトを取得します
  3. 彼は、InetAddressインスタンスに対応するIPアドレスとホスト名を取得するための3つのメソッドを提供します
    。①StringgetCanonicalHostName():ローカルエリアネットワークでホスト名を取得するために使用されます
    ②StringgetHostAddress():IPアドレスの文字列を取得します
    ③StringgetHostName():get ipアドレスのホストエイリアス
    InetAddressは、アドレス(ホスト)に到達できるかどうかをテストするためのisReachable(timeout)メソッドも提供します。ファイアウォールまたはサーバーの構成により、要求がブロックされる場合があります。
    コードスニペット
  import java.net.InetAddress;

public class ping {
    public static void main(String[] args) {
        try {
            //通过InetAddress类访问主机名,ip地址
            InetAddress indress = InetAddress.getByName("www.baidu.com");//获取对应Ip的inetAddress对象 存储了IP的主机名和ip地址
            String hostName = indress.getHostName();                //获取主机名
            String hostAddress = indress.getHostAddress();          //获取ip地址
            String hostAddress1 = indress.getCanonicalHostName();   //获取ip地址
            System.out.println(hostAddress1);                      //输出ip地址
            System.out.println(indress);                           //输出主机名/ip地址
            System.out.println(hostName);                          //输出主机名
            System.out.println(hostAddress);                      //输出ip地址
            System.out.println("----------------");
            //获取本机地址
            InetAddress localHost = InetAddress.getLocalHost();    //获取本机地址
            String hostName1 = localHost.getHostName();
            String hostAddress2 = localHost.getHostAddress();
            String canonicalHostName = localHost.getCanonicalHostName();
            System.out.println(hostName1);
            System.out.println(hostAddress2);
            System.out.println(canonicalHostName);
            System.out.println("----------------");
            //通过ip获取InetAddress实例获取对应ip地址的信息
            InetAddress byAddress = InetAddress.getByAddress(new byte[]{127,0,0,1});
            System.out.println("ip的主机: "+byAddress.getHostName()+"   ip的ip: "+byAddress.getHostAddress());
            System.out.println("----------------");
           //返回sougou连接结果
            boolean ping = ping("www.sogou.com");
            System.out.println(ping);

        } catch (Exception e) {
            System.out.println("这个ip地址不可用");
            e.printStackTrace();

        }
    }
    public static boolean ping(String ipAddress) throws Exception {
        int  timeOut =  3000 ;  //超时应该在3钞以上
        //isReachable(timeout)的方法,用于测试是否可以到达该地址(主机)
        boolean status = InetAddress.getByName(ipAddress).isReachable(timeOut);
        // 当返回值是true时,说明host是可用的,false则不可。
        return status;
    }
}

おすすめ

転載: blog.csdn.net/ssdssa/article/details/110100394