网络编程----InetAdderss类(表示网络协议地址的类)
一直对网络编程模棱两可,现在准备正式把他们了解透,用到的第一个类就是InetAdderss。
直接上例子。简单干脆,有注释。
import java.net.InetAddress;
import java.net.UnknownHostException;
public class GetIP {
public static void main(String[] args) {
InetAddress sina = null; // 创建一个InetAddress用于存放新浪的地址
InetAddress myIP = null;// 创建一个InetAdderss用于存放本机地址
InetAddress yahoo[] = null;// 创建一个InetAdderss用于存放雅虎地址数组
InetAddress taobao[] = null;// 创建一个InetAdderss用于存放yinyihao.com地址数组
// 取得地址,注意这些语句要放在try-catch语句块中,这些方法都会抛出异常
try {
// 使用getByName获得sina的IP地址
sina = InetAddress.getByName("www.sina.com.cn");
// 获得本机地址
myIP = InetAddress.getLocalHost();
// 使用getAllByName获得yahoo的地址数组
yahoo = InetAddress.getAllByName("yahoo.com");
// 使用getAllByName获得yinyihao的地址数组
taobao = InetAddress.getAllByName("www.taobao.com");
} catch (UnknownHostException e) {
e.printStackTrace();
}
System.out.println(sina);
System.out.println(myIP);
for (int i = 0; i < yahoo.length; i++) {
System.out.println(yahoo[i]);
}
for (int i = 0; i < taobao.length; i++) {
System.out.println(taobao[i]);
}
}
}
结果
我们发现
InetAddress.getAllByName得到的<span style="font-family: Arial, Helvetica, sans-serif;">taobao[] </span><span style="font-family: Arial, Helvetica, sans-serif;">yahoo[] 想获取多个IP地址,就这个方法了。</span>
<pre name="code" class="java">他们都是多个,查询资料后发现应该是,dns服务器绑定了转发了多个,一般大公司都会这么做。那个速度快用哪个。
<span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 19.5px; background-color: rgb(245, 245, 245);">注意到这些方法可能会抛出的异常。</span>
<span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 19.5px; background-color: rgb(245, 245, 245);">如果安全管理器不允许访问DNS服务器或禁止网络连接,SecurityException会抛出、</span>
<span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 19.5px; background-color: rgb(245, 245, 245);">如果找不到对应主机的IP地址,或者发生其他网络I/O错误,这些方法会抛出UnknowHostException</span>
<span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 19.5px; background-color: rgb(245, 245, 245);">我这里是全部拦截了。</span>
<pre name="code" class="java">