JAVA—咖啡館

          ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術,交流工作經驗,分享JAVA帶來的快樂!本網站部分轉載文章,如果有版權問題請與我聯系。

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

           

          一、由域名求IP地址的程序
          下面程序由命令行輸入域名,輸出ip

          import java.net.*;
          public class nslookup {
          //Usage:java nslookup hostname
          public static void main (String argv[]) throws Exception {
          String host=argv[0];
          InetAddress address=null;
          try {
          address=InetAddress.getByName(host);
          } catch(UnknownHostException e) {
          System.out.println("Unknown host");
          System.exit(0);
          }
          byte[] ip=address.getAddress();
          for (int i=0;i< ip.length;i++) {
          if (i>0) System.out.print(".");
          System.out.print(ip[i]&0xff);
          }
          System.out.println();
          }
          }
          

          程序運行結果:

          C:\java>java nslookup sina.com
          71.5.7.138

          C:\java>

          二、 得到某個域名的所有IP地址

          import java.net.*;
          import java.io.*;
          public class SimpleDNS
          {
          public static void main(String[] args)
          {
          try
          {
          InetAddress[] address =InetAddress.getAllByName("www.sina.com");
          for(int i=0;i< address.length;i++)
          {
          System.out.println(address[i].getHostAddress());
          }
          }
          catch (Exception e)
          {
          System.out.println(e.toString());
          System.exit(1);
          }
          }
          }
          
          ? 運行結果:
          C:\java>java SimpleDNS www.s
          218.30.13.35
          218.30.13.36
          218.30.13.37
          218.30.13.38
          218.30.13.39
          218.30.13.40
          218.30.13.41
          218.30.13.42
          218.30.13.43
          218.30.13.44
          218.30.13.45
          218.30.13.46
          218.30.13.47
          218.30.13.48
          218.30.13.49
          218.30.13.34

           

          三、 IP地址轉換成10進制整數
          經常要判斷一個ip是國內的還是國外的,有了下面程序再結合數據庫查詢...

          public class IP
          {
          private static long ipToLong(String strIP)
          //將127.0.0.1 形式的IP地址轉換成10進制整數,這里沒有進行任何錯誤處理
          {
          int j=0;
          int i=0;
          long [] ip=new long[4];
          int position1=strIP.indexOf(".");
          int position2=strIP.indexOf(".",position1+1);
          int position3=strIP.indexOf(".",position2+1);
          ip[0]=Long.parseLong(strIP.substring(0,position1));
          ip[1]=Long.parseLong(strIP.substring(position1+1,position2));
          ip[2]=Long.parseLong(strIP.substring(position2+1,position3));
          ip[3]=Long.parseLong(strIP.substring(position3+1));
          return (ip[0]<<24)+(ip[1]<<16)+(ip[2]<<8)+ip[3];
          }
          private static String longToIP(long longIP)
          //將10進制整數形式轉換成127.0.0.1形式的IP地址
          {
          StringBuffer sb=new StringBuffer("");
          sb.append(String.valueOf(longIP>>>24));//直接右移24位
          sb.append(".");

                    //將高8位置0,然后右移16位 sb.append(String.valueOf((longIP&0x00FFFFFF)>>>16)); sb.append("."); sb.append(String.valueOf((longIP&0x0000FFFF)>>>8)); sb.append("."); sb.append(String.valueOf(longIP&0x000000FF)); sb.append("."); return sb.toString(); } public static void main(String[] args) { System.out.println("IP地址的各種表現形式:\r\n"); System.out.print("32位二進制形式:"); System.out.println(Long.toBinaryString(3526601384L)); System.out.print("十進制形式:"); System.out.println(ipToLong("210.51.170.168")); System.out.print("普通形式:"); System.out.println(longToIP(3526601384L)); } }

          程序運行結果:

          IP地址的各種表現形式:

          32位二進制形式:11001010011100000110000010100011
          十進制形式:3396362403
          普通形式:202.112.96.163.

          posted on 2007-06-25 09:55 rogerfan 閱讀(644) 評論(0)  編輯  收藏 所屬分類: 【Java知識】
          主站蜘蛛池模板: 海晏县| 海伦市| 陇川县| 红安县| 渝中区| 利川市| 山西省| 上思县| 丹凤县| 历史| 略阳县| 十堰市| 花莲县| 庄河市| 鄂伦春自治旗| 临桂县| 四川省| 清新县| 兴宁市| 浦江县| 石城县| 本溪| 禹城市| 瑞安市| 两当县| 临颍县| 松江区| 岚皋县| 休宁县| 天峻县| 南城县| 肃南| 五指山市| 承德县| 岱山县| 丰顺县| 安宁市| 伊宁市| 资讯 | 河东区| 新疆|