<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • Java如何實現(xiàn)簡單的whois查詢

    時間:2024-09-21 19:07:49 SUN認證 我要投稿
    • 相關(guān)推薦

    Java如何實現(xiàn)簡單的whois查詢

      利用Java socket 實現(xiàn)根據(jù)IP地址查詢該IP相關(guān)的注冊信息。

      源代碼直接下載:java_whois.zip

      相關(guān)的兩個類WhoisBean.java 和WhoisQuery.java 代碼實現(xiàn)如下:

      Java代碼

      import java.util.LinkedHashMap;

      import java.util.List;

      import java.util.Map;

      import java.util.Map.Entry;

      /**

      *

      * @author Michael sun

      */

      public class WhoisQuery {

      /**

      *

      * @param ip

      */

      private void queryIpInfo(String ip) {

      Map map = new LinkedHashMap();

      try {

      WhoisBean bean = new WhoisBean();

      bean.setTimeout(0);

      // bean.setServer("whois.apnic.net");

      bean.setServer("whois.ripe.net");

      bean.queryInfoByIp(ip);

      List infoList = bean.getInfoList();

      String value = "";

      String key = "";

      for (String infoTmp : infoList) {

      String[] arr = infoTmp.split(":[ ]*");

      if (arr.length > 1) {

      key = arr[0];

      value = arr[1];

      } else {

      value = arr[0].trim();

      }

      if (null == map.get(key)) {

      map.put(key, "");

      }

      value = map.get(key) + value;

      map.put(key, value);

      }

      } catch (Exception e) {

      e.printStackTrace();

      }

      for (Entry entry : map.entrySet()) {

      System.out.println(entry.getKey() + ":" + entry.getValue());

      }

      }

      /**

      * @param args

      */

      public static void main(String[] args) {

      String ip = "129.42.58.216";// "163.1.13.189";

      WhoisQuery query = new WhoisQuery();

      query.queryIpInfo(ip);

      }

      }

      Java代碼

      import java.io.BufferedReader;

      import java.io.InputStreamReader;

      import java.io.PrintStream;

      import java.net.Socket;

      import java.util.ArrayList;

      import java.util.List;

      /**

      * WhoisBean

      * @author Michael sun

      */

      public class WhoisBean {

      /**

      * server address

      */

      private String server = "";

      /**

      * port

      */

      private int port = 43;

      /**

      * timeout/minute

      */

      private int timeout = 0;

      /**

      * infoList

      */

      private List infoList = new ArrayList();

      /**

      * @param ip

      * @throws Exception

      */

      @SuppressWarnings("unchecked")

      public void queryInfoByIp(String ip) throws Exception {

      Socket theSocket = null;

      BufferedReader br = null;

      PrintStream ps = null;

      int qryCount = 0;

      while (qryCount < 5) {

      qryCount++;

      try {

      theSocket = new Socket(server, port);

      theSocket.setSoTimeout(timeout * 1000);

      ps = new PrintStream(theSocket.getOutputStream());

      ps.println(ip);

      br = new BufferedReader(new InputStreamReader(theSocket

      .getInputStream()));

      infoList.add("ip:" + ip);

      String readLine = "";

      int i = 0;

      System.out.println("Whois query read start.... ");

      while ((readLine = br.readLine()) != null) {

      System.out.println("***" + readLine);

      if (readLine.length() > 0 && readLine.charAt(0) != '%') {

      infoList.add(readLine);

      i++;

      // 默認讀取100行數(shù)據(jù)

      if (i > 100 || readLine.startsWith("source")) {

      break;

      }

      }

      }

      System.out.println("querylist size:" + infoList.size());

      break;

      } catch (Exception e) {

      System.out.println("EXCEPTION : " + e);

      } finally {

      if (null != br) {

      br.close();

      }

      if (null != ps) {

      ps.close();

      }

      if (null != theSocket) {

      theSocket.close();

      }

      }

      }

      }

      /**

      * @return the server

      */

      public String getServer() {

      return server;

      }

      /**

      * @return the port

      */

      public int getPort() {

      return port;

      }

      /**

      * @return the timeout

      */

      public int getTimeout() {

      return timeout;

      }

      /**

      * @param pServer the server to set

      */

      public void setServer(String pServer) {

      server = pServer;

      }

      /**

      * @param pPort the port to set

      */

      public void setPort(int pPort) {

      port = pPort;

      }

      /**

      * @param pTimeout the timeout to set

      */

      public void setTimeout(int pTimeout) {

      timeout = pTimeout;

      }

      /**

      * @return the infoList

      */

      public List getInfoList() {

      return infoList;

      }

      /**

      * @param pInfoList the infoList to set

      */

      public void setInfoList(List pInfoList) {

      infoList = pInfoList;

      }

      }

      運行WhoisQuery這個類就可以看到如下信息:

      Java代碼

      Whois query read start....

      ***% This is the RIPE Database query service.

      ***% The objects are in RPSL format.

      ***%

      ***% The RIPE Database is subject to Terms and Conditions.

      ***% See http://www.ripe.net/db/support/db-terms-conditions.pdf

      ***

      ***% Note: This output has been filtered.

      ***% To receive output for a database update, use the "-B" flag.

      ***

      ***% Information related to '129.0.0.0 - 129.255.255.255'

      ***

      ***inetnum: 129.0.0.0 - 129.255.255.255

      ***netname: EU-ZZ-129

      ***descr: Various Registries

      ***country: EU # Country is really world wide

      ***remarks: These addresses were issued by

      *** The IANA before the formation of

      *** Regional Internet Registries.

      ***

      ***org: ORG-NCC1-RIPE

      ***admin-c: iana1-RIPE

      ***tech-c: iana1-RIPE

      ***status: ALLOCATED UNSPECIFIED

      ***mnt-by: RIPE-NCC-HM-MNT

      ***mnt-lower: RIPE-NCC-HM-MNT

      ***mnt-routes: RIPE-NCC-RPSL-MNT

      ***source: RIPE # Filtered

      querylist size:17

      ip:129.42.58.216

      inetnum:129.0.0.0 - 129.255.255.255

      netname:EU-ZZ-129

      descr:Various Registries

      country:EU # Country is really world wide

      remarks:These addresses were issued byThe IANA before the formation ofRegional Internet Registries.

      org:ORG-NCC1-RIPE

      admin-c:iana1-RIPE

      tech-c:iana1-RIPE

      status:ALLOCATED UNSPECIFIED

      mnt-by:RIPE-NCC-HM-MNT

      mnt-lower:RIPE-NCC-HM-MNT

      mnt-routes:RIPE-NCC-RPSL-MNT

      source:RIPE # Filtered

    【Java如何實現(xiàn)簡單的whois查詢】相關(guān)文章:

    Java byte[]轉(zhuǎn)int如何實現(xiàn)03-16

    實現(xiàn)鼠標畫圖的Java程序03-16

    Java多線程的實現(xiàn)方式03-20

    Java語言的特點和實現(xiàn)機制02-27

    Java動態(tài)代理實現(xiàn)AOP的方法03-16

    如何編譯java程序03-05

    java實現(xiàn)web服務(wù)器的方法03-30

    Java認證輔導(dǎo):Java實現(xiàn)二叉樹遍歷算法03-19

    如何讓JAVA代碼更高效03-20

    主站蜘蛛池模板: 1000部精品久久久久久久久 | 日本伊人精品一区二区三区| 国产精品成人va| 免费短视频软件精品一区二区| 国自产精品手机在线观看视| 久久精品二区| 97人妻无码一区二区精品免费| 亚洲精品欧美精品日韩精品| 国产精品多人p群无码| 在线观看91精品国产入口| 国产精品视频不卡| 久久精品国产亚洲AV无码麻豆| 四虎影视国产精品亚洲精品hd| 黄床大片免费30分钟国产精品| 精品视频一区二区三区四区五区| 国产精品美女久久久久久2018| 真实国产乱子伦精品视频| 88久久精品无码一区二区毛片| 国产精品男男视频一区二区三区| 四虎国产精品永久在线| 精品国产一级在线观看| 精品欧洲av无码一区二区| 日韩熟女精品一区二区三区| 国产精品 视频一区 二区三区| 久久97精品久久久久久久不卡| 精品人妻人人做人人爽| 亚洲av无码乱码国产精品| 偷拍精品视频一区二区三区| 国产精品爽爽ⅴa在线观看| 四虎国产精品永久地址49| 国产成人精品视频播放| 国产精品女同久久久久电影院| 人人妻人人澡人人爽人人精品| 亚洲日韩精品A∨片无码| 亚洲av无码国产精品色在线看不卡| 久久精品国产精品亚洲下载| 国产区精品高清在线观看| 国产精品无码素人福利不卡| 国产精品美女久久久久av爽| 成人国产精品日本在线观看| 99久久精品免费|