在java中,万物皆对象,
InetAddress类就是ip地址的类
它可以输入域名,获取到ip,InetSocketAddress类可以进行加入端口,
package ip;
import sun.net.util.IPAddressUtil;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.InterfaceAddress;
import java.net.UnknownHostException;
/**
* @ClassName getIp
* @Author 瞿肖
* @Date 2022/7/12 10:40
*/
public class getIp {
public static void main(String[] args) {
try {
InetAddress localHost = InetAddress.getLocalHost();//获取本机地址
InetAddress byName = InetAddress.getByName("www.baidu.com");
System.out.println(localHost);
System.out.println(byName);//获取域名+ip地址
System.out.println(byName.getCanonicalHostName());//获取ip,这个会比较慢,因为要去查
} catch (UnknownHostException e) {
throw new RuntimeException(e);
}
}
}
由于InetAddress类没有构造方法,所以只能通过静态方法来获取。以上只是获取ip的方法,这个类还有用来判断ip合法性的方法:
InetSocketAddress就是拿来获取加端口号的ip方便用于远程操作,不过读了它的源码我们会发现,他继承了Serializable序列化表示类,也就说明这个类可以被序列化