• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 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

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【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服務器的方法03-30

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

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

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 中文字幕大看蕉永久网 | 亚洲精品国产精品乱码在线 | 在线亚洲欧美专区二区 | 亚洲人成在线:观看 | 亚洲尤物在线精品一区 | 精品国产一区二区三区在线 |

            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