免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Java技巧:用Java獲得IP地址

如何用Java獲得一個域名的IP地址呢?提供這個功能的類叫做java.net.InetAddress。我們假設(shè)現(xiàn)在有這樣一個域名,它用一個靜態(tài)的getByName來重新獲得一個InetAddress,然后得到可以讀出的IP地址。下面的代碼是非常基本的命令行。

  import java.net.InetAddress;
  import java.net.UnknownHostException;
  public class NsLookup {
   static public void main(String[] args) {
   try {
  InetAddress address = InetAddress.getByName(args[0]);
  System.out.println(args[0]+"
  : "+address.getHostAddress());
   }
   catch(UnknownHostException uhe) {
  System.err.println("Unable to find: "+args[0]);
   }
   }
  }
 
InetAddress也可以通過使用getAddress()來獲得IP地址,但是它的返回值是一個4個字節(jié)的數(shù)組。因此盡管getAddress()在獲得IP方面是有用的,但卻不適于用來輸出。

上面的命令的輸出結(jié)果看起來就是這樣:

  bash$ java code.NsLookup www.sun.com
  www.sun.com: 192.18.97.241
有時一個域名會包含不止一個IP地址,比如微軟的Web服務(wù)器,這是為了保持負(fù)載平衡。InetAddress提供了一種可以得到一個域名的所有IP地址的方法。讓我們來考慮以下代碼:

  import java.net.InetAddress;
  import java.net.UnknownHostException;
  public class NsLookup {
   static public void main(String[] args) {
   try {
   String name = args[0];
  InetAddress[] addresses = InetAddress.getAllByName(name);
   for(int i=0; i<addresses.length; i++) {
  System.out.println(name+"["+i+"]
  : "+address.getHostAddress());
   }
    } catch(UnknownHostException uhe) {
   System.err.println("Unable to find: "+args[0]);
   }
   }
  }
  對于www.sun.com,將會輸出:


  bash$ java code.NsLookup www.sun.com
  www.sun.com[0]: 192.18.97.241
  然而,對于www.microsoft.com,將會輸出:


  bash$ javad code/NsLookup.java
  www.microsoft.com
  www.microsoft.com[0]: 207.46.230.218
  www.microsoft.com[1]: 207.46.197.101
  www.microsoft.com[2]: 207.46.230.229
  www.microsoft.com[3]: 207.46.197.113
  www.microsoft.com[4]: 207.46.230.219
  www.microsoft.com[5]: 207.46.230.220
[6">www.microsoft.com[6]: 207.46.197.102
  由于InetAddress,localhost必須要特別處理。如果字符串“localhost”直接進(jìn)入NsLookup程序的原始版本,就會得到以下相當(dāng)無用的結(jié)果:  

  bash$ java code.NsLookup www.sun.com
  localhost: 127.0.0.1
  我們可以手動尋找本地地址:

  try {
   InetAddress localhost = InetAddress.getLocalHost();
   System.out.println
  ("localhost: "+localhost.getHostAddress());
   System.out.println
  ("localhost: "+localhost.getHostName());
   } catch(UnknownHostException uhe) {
   System.err.println
  ("Localhost not seeable. Something is odd. ");
   }
  這里是一個輸出的例子:

  localhost: 192.168.13.15
  localhost: crab
  本地主機(jī)的域名并沒有返回完整的該機(jī)器的域名,這是因?yàn)樗Q于該機(jī)器的設(shè)置。

  最后,InetAddress可能會被用來將IP地址轉(zhuǎn)變?yōu)檫@些地址的域名,這對于分析Web日志是很有用的。InetAddress使得開發(fā)者們可以輕松的和域名、IP地址打交道,并且使他們可以不必和DNS服務(wù)器進(jìn)行交互。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
JAVA獲得域名的IP地址例子
Java通信——獲取自己IP
jpcap:Java如何處理ICMP報文的收發(fā)
Java如何處理ARP報文的收發(fā)
基于Java的UDP協(xié)議程序設(shè)計(jì)初探
利用Java實(shí)現(xiàn)端口掃描器
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服