六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

使用WHOIS協議查詢Internet域名

[摘要]中國建設銀行云南省保山地區分行 楊紹方當我們準備建立一個Web站點,就必須向域名登記機構申請一個Internet域名,因此,我們通常希望了解自己準備使用的域名是否已經被注冊,這時,可以簡單地訪問In...
中國建設銀行云南省保山地區分行 楊紹方

當我們準備建立一個Web站點,就必須向域名登記機構申請一個Internet域名,因此,我們通常希望了解自己準備使用的域名是否已經被注冊,這時,可以簡單地訪問InterNIC站點http://www.internic.net/whois.html,在"Registry Whois"輸入框中輸入需查詢的域名,就可以得到我們需要的結果。本文介紹了如何使用Java編程來實現這個過程。

一 原理
原理非常簡單,域名的查詢主要是基于RFC 954提供的WHOIS協議。在上述過程中,我們實際上是訪問了InterNIC站點的WHOIS服務器,該服務器從WHOIS數據庫中查詢我們所需要的內容。
WHOIS服務器是一個基于"查詢/響應"的TCP事務服務器,它運行在SRI-NIC機器上(26.0.0.73或10.0.0.51),向用戶提供internet范圍內的目錄服務。本地主機上的用戶程序可以通過Internet訪問該服務器,其過程主要有下面三步:
(1)在TCP服務端口43(十進制)連接SRI-NIC服務主機;
(2)發送一個命令,以回車和換行(<CRLF>)結尾;
(3)接受相應命令的返回信息,一旦輸出結束,服務器將關閉連接。
命令的格式非常簡單。可以直接輸入域名,例如,可以使用"sohu.com"查詢"搜狐"網站的域名信息;也可以使用"help"得到詳細的幫助信息。

二 Java socket編程簡述
在Java中,使用Socket類可以實現客戶端的sockets,建立與服務器的網絡連接。本文使用下面所示的Socket類的構造器來創建一個流socket,并連接到主機"whois.internic.net"的端口43。
public Socket(String host, int port, boolean stream) throws IOException
其中,參數host為遠程主機的主機名,port為遠程主機的端口號,如果參數stream為true,則創建一個流socket,否則創建一個數據報socket。
如果創建socket時發生I/O錯誤,將拋擲一個IOException 異常。
當創建了一個連接到遠程主機的socket對象后,我們可以使用getInputStream()和getOutputStream()方法分別得到該socket對象的輸入流和輸出流,用于對該socket進行數據讀寫,為了使應用程序設計簡單,這些方法返回的流通常使用java.io包中的實例對象來處理,例如:DataInputStream和PrintWriter。
從socket讀數據使用readline()方法,一次讀取一行數據(字符串):
public String readLine() throws IOException
向socket寫數據使用print()方法:
public void print(String s)
當完成socket通訊后,應該首先關閉DataInputStream和PrintWriter對象,最后才關閉socket對象。

三 源程序
import java.net.*;
import java.io.*;

public class whois
{
public final static int port = 43;
public final static String hostname = "whois.internic.net";

public static void main(String[] args)
{
Socket theSocket;
DataInputStream theWhoisStream;
PrintStream ps;

//檢查命令行參數
if (args.length <1)
{
System.out.println("\nUsage: java whois <command>");
System.out.println("Parameters:");
System.out.println(
"\tcommand = one or more Domain name, or other command.");
System.out.println("Example:");
System.out.println("\tjava whois sohu.com");
System.out.println("\tjava whois help");

System.exit(1); //退出
}

try {
//在TCP服務端口43(十進制)連接SRI-NIC服務主機
theSocket = new Socket(hostname, port, true);
ps = new PrintStream(theSocket.getOutputStream());
//發送用戶提供的一個或多個命令
for (int i = 0; i < args.length; i++)
ps.print(args[i] + " ");
//以回車和換行(<CRLF>)結尾
ps.print("\r\n");

//接受相應命令的返回信息
theWhoisStream = new DataInputStream(theSocket.getInputStream());
String s;
while ((s = theWhoisStream.readLine()) != null) {
System.out.println(s);
}

//關閉DataInputStream和PrintWriter
theWhoisStream.close();
ps.close();
//關閉socket
theSocket.close();
}
catch (IOException e) {
System.err.println(e);
}
}
}
whois.java利用JDK1.2編譯通過,在Windows 98/NT的命令行提示符運行的方法為:
java whois < Internet域名或命令>
例如,查詢"搜狐"的Internet域名信息可以:
java whois sohu.com
得到詳細的幫助可以:
java whois help
您可以發現,屏幕輸出的內容與使用瀏覽器訪問http://www.internic.net/whois.html得到的內容完全一樣。


主站蜘蛛池模板: 日韩在线视频观看 | 日产精品久久久一区二区 | 一级免费黄色大片 | 青青草97国产精品免费观看 | 天天射天天爱天天干 | 日韩三级精品 | 网友自拍区一区二区三区 | 性欧美巨大极品videos | 人妖无码 | 亚洲精品在看在线观看 | 午夜高清在线观看免费6 | 亚欧乱色视频小说 | 天堂黄色| 日本成人片在线观看 | 日干夜操| 热99这里有精品综合久久 | 天天干天天草天天射 | 中文字幕第一页在线播放 | 婷婷中文网| 人妖在线精品一区二区三区 | 伊人五月婷婷 | 伊香蕉大综综综合久久 | 综合五月天婷婷丁香 | 手机看片久久国产免费不卡 | 中文黄色 | 同房视频在线观看 | 深爱激情五月网 | 天天射色综合 | 四虎影永久在线高清免费 | 日韩精品欧美国产精品亚 | 欧美亚洲国产精品久久久 | 日韩欧美福利视频 | 天堂网在线视频 | 亚洲成人黄色片 | 日本 欧美 在线 | 亚洲一区在线免费观看 | 五月天丁香婷婷综合久久 | 亚洲视频日韩视频 | 自拍网视频 | 色婷婷丁香 | 天美传媒一区二区三区 |