中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

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

      時間:2024-09-21 19:07:49 SUN認(rèn)證 我要投稿
      • 相關(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++;

        // 默認(rèn)讀取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)鼠標(biāo)畫圖的Java程序03-16

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

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

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

      如何編譯java程序03-05

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

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

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

      主站蜘蛛池模板: 亚洲日韩成人无码不卡网站| 天天澡天天揉揉AV无码人妻斩| 免费人成视频欧美| 新宾| 无码无在线观看| 激情五月婷婷六月俺也去| 亚洲日韩精品AⅤ片无码富二代| 景宁| 亚洲网站免费看| 99久久这里只精品国产免费| 中文字幕亚洲第一页在线| 99精品视频69v精品视频免费| 芒康县| 精品少妇一区一区三区| 国产精品一区二区日韩精品| 亚洲精品久久久蜜桃一区| 亚洲AV无码国产精品久久l| 粉嫩国产白浆在线播放| 亚洲乱码精品中文字幕| 亚洲伊人免费综合网站| 日韩av一区二区三区四区av| 新兴县| 荥经县| 徐汇区| 海城市| 国产美女a做受大片免费 | 欧美日韩亚洲国产无线码| 亚洲AV秘 无码一区二区久久| 亚洲AV无码一区二区三区精神| 灯塔市| 婷婷色在线视频中文字幕| 财经| 久久婷婷国产综合精品| 国产激情视频在线| 99久久99久久精品免观看| 国产在线观看精品一区二区三区 | 五月婷婷久久中文字幕| 日韩人妻无码精品二专区| 激情 一区二区| 日韩人妻中文字幕一区二区三区| 极品人妻少妇一区二区|