Inetnet 地址

2015-12-29  本文已影响717人  春天里的布谷鸟

InetAddress

什么是InetAddress?

  1. 表示的是ip地址

如何构造一个InetAddress?

  1. getByName(String name) 传入一个域名,通过这个域名来构造一个ip地址,这个方法会建立网络连接,连接到DNS服务器查找域名对应的ip地址,如果出现网络问题会抛出异常。也可以传入一个字符串类型的ip地址,但是这时不会立即去查找DNS,只有当调用getHostName()的时候才会查找
  1. getByAddress(byte[]) ,传入一个字节数组表示的ip地址来构造对象,需要把大于128的数字转为byte类型,转换完成有可能是负数,这种方法可以为不能建立网络连接的时候构造ip对象
  2. InetAddress 需要查找DNS,所以这个类中有缓存,每次先从缓存中查找,如果没有找到才去查DNS,对于成功或者失败的查找结果会建立缓存,缓存的时间是可以通过系统属性来控制的

得到了InetAddress对象,能干什么呢?

  1. getHostName()得到主机的名字和ip地址
  1. getHostAddress()得到主机的ip地址字符串
  2. getAddress()得到ip地址的字节数组,如果是负数要+256来转换为正数

NetworkInterface

什么是网络接口?

  1. 表示的是网络接口,可以是实际的物理网卡也可以是虚拟网卡

如何获取网卡信息?

  1. getByName(String name) 通过名字来获取NetworkInterface
  1. getByInetAddress(InetAddress address) 通过ip地址来获取网络接口
  2. getNetworkInterfaces() 可以获取所有的网络接口

获取了网卡后,可以得到那些信息?

  1. getInetAddresses() 得到这个和这个网卡绑定的所有ip地址,因为一个网卡上可以绑定多个ip地址
  1. getName() 得到这个网卡的名字,如 eh0
  2. getDisplayName() 和getName差不多
上一篇 下一篇

猜你喜欢

热点阅读