一、InetAddress:类的主要作用是封装IP及DNS,因为这个类没有构造器,所以我们要用他的一些方法来获得对象常用的有
1、使用getLocalHost方法为InetAddress创建对象;
2、根据域名得到InetAddress对象
3、根据ip得到InetAddress对象
实现代码:这里以我的主机和百度的域名进行了测试。输出
package cn.skh.net;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class InetAddress01 {
public static void main(String[] args) throws UnknownHostException {
// 使用getLocalHost方法为InetAddress创建对象;
InetAddress add=InetAddress.getLocalHost();//获得本机的InetAddress对象
System.out.println(add.getHostAddress());//返回本机IP地址
System.out.println(add.getHostName());//输出计算机名
//根据域名得到InetAddress对象
add=InetAddress.getByName("www.baidu.com");
System.out.println(add.getHostAddress());//返回百度服务器的IP地址
System.out.println(add.getHostName());//输出www.baidu.com;
//根据ip得到InetAddress对象;
add=InetAddress.getByName("111.13.100.91");
System.out.println(add.getHostAddress());
System.out.println(add.getHostName());//如果ip地址存在,并且DNS给你解析就会输出
//www.baidu.com,不给你解析就会返回这个IP本身;
}
}
输出:
100.95.227.210
DESKTOP-Q9PCLOB
111.13.100.92
www.baidu.com
111.13.100.91
二、InetSocketAddress类主要作用是封装端口 他是在在InetAddress基础上加端口,但它是有构造器的。具体的一些方法可以去帮助文档查看。
package cn.skh.net;
import java.net.InetAddress;
import java.net.InetSocketAddress;
/**
* 封装端口 在InetADDress基础上加端口
* @author SKH
*
*/
public class InetSocketskh01 {
public static void main(String[] args) {
InetSocketAddress add=new InetSocketAddress("100.95.227.210",9999);
System.out.println(add.getHostName());
System.out.println(add.getPort());
InetAddress addr=add.getAddress();//获得端口的ip;
System.out.println(addr.getHostAddress());//返回ip;
System.out.println(addr.getHostName());//输出端口名;
}
}
输出:
DESKTOP-Q9PCLOB
9999
100.95.227.210
DESKTOP-Q9PCLOB