java - 如何创建 INetAddress 构造函数

标签 java network-programming inetaddress

我有这个代码:

  import java.net.InetAddress;
  import java.net.UnknownHostException;

  public class NsLookup {

 private InetAddress inet = null;

 public void resolve(String host) {
   try {
     inet = InetAddress.getByName(host);

     System.out.println("Host name : " + inet.getHostName());
     System.out.println("IP Address: " + inet.getHostAddress());
  }
   catch (UnknownHostException e) { 
     e.printStackTrace(); 
   }
 }

 public static void main(String[] args) {
   NsLookup lookup = new NsLookup();
   lookup.resolve(args[0]);
 }
}

但是我试图向初始化 InetAddress 对象的类添加一个构造函数,将其与 resolve() 方法分开,但不清楚如何操作,有什么建议吗?

最佳答案

您需要的是一个简单的构造函数,它接受字符串形式的主机名并为其初始化 InetAddress 对象,这可以轻松完成,如下所示:

  import java.net.InetAddress;
  import java.net.UnknownHostException;

  public class NsLookup {

    private InetAddress inet = null;

    // you need to define this extra constructor
    public NsLookup(String host){
    try{
       inet = InetAddress.getByName(host);
    }
    catch(UnknownHostException uhe){
      uhe.printStackTrace();
    }
    }
    // constructor ends here

    // Also you don't need to remove the argument received by the resolve() 
   // so that one could resolve other hostnames too.

    public void resolve(String host) {
     try {
        inet = InetAddress.getByName(host);
        System.out.println("Host name : " + inet.getHostName());
        System.out.println("IP Address: " + inet.getHostAddress());
     }
     catch (UnknownHostException e) { 
        e.printStackTrace(); 
     }
    }

 public static void main(String[] args) {
        NsLookup nsl = new NsLookup("YOUR-HOSTNAME");
        // add your rest code here
 }
}

关于java - 如何创建 INetAddress 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33418310/

相关文章:

java - Java 中的 addShutDownHook 和 signal Handler 有什么区别?

java - SSO spring kerberos 中的注销功能

java - 使用Android发送网络图片

java - 如何访问 Java 中每个网络接口(interface)的特定于连接的 DNS 后缀?

java - nslookup 和 Java 的 InetAddress getHostName 之间的不同结果

java - 使用 URL 字符串获取 IP 地址? ( java )

java - AutoIt 类似 Java 的 GUI 自动化工具

java - 无法通过按位运算获得长整型值

java - 捕获网络连接事件

java - Java 小程序在访问新网页时可以保留套接字连接吗?