直播中
Sun公司java語(yǔ)言的的推出可以說(shuō)是一個(gè)劃時(shí)代的語(yǔ)言革命,這種語(yǔ)言同時(shí)能適應(yīng)應(yīng)用軟件領(lǐng)域和網(wǎng)絡(luò)開(kāi)發(fā)領(lǐng)域,其優(yōu)秀的網(wǎng)絡(luò)開(kāi)發(fā)功能更是讓人驚嘆,利用java你可以輕松的實(shí)現(xiàn)在其他的語(yǔ)言中要花很多代碼和時(shí)間才能實(shí)現(xiàn)的功能:你可以很輕松的用java開(kāi)發(fā)一個(gè)同Windows的那個(gè)notebook一樣的程序,甚至你可以朝開(kāi)發(fā)word進(jìn)軍,你可以很輕松的實(shí)現(xiàn)網(wǎng)絡(luò)通信,你可以在網(wǎng)絡(luò)中展現(xiàn)漂亮的圖像效果(這種效果你是使用gif.jpg以及flash始終做不到的),你可以使用java開(kāi)發(fā)Webserver和中間件(參考www.apusic.com)實(shí)現(xiàn)負(fù)載均衡等功能;你也可以在開(kāi)發(fā)你的郵件系統(tǒng);可以生成功能非常強(qiáng)大的java組件運(yùn)行于asp中,比vb、vc和Borland C++ builder開(kāi)發(fā)相應(yīng)的組件來(lái)的容易,而且功能也強(qiáng)大的多。java的種種精彩不是筆者可以在這里完全可以介紹完的,但是下面筆者給出的一段不超過(guò)20行的代碼可以讓你感覺(jué)到j(luò)ava這種語(yǔ)言的真正強(qiáng)大.。你如果能靈活的運(yùn)用java,我相信,你一定可以做得比我更精彩!ok!let's begain!
本文利用Java的socket通信功能實(shí)現(xiàn)了下面兩種作用:
1、可以查詢(xún)internet中domain和ip的(具體的用法見(jiàn)后文);
2、可以在局域網(wǎng)中通過(guò)機(jī)器名查詢(xún)相應(yīng)的ip和通過(guò)ip查詢(xún)相應(yīng)的機(jī)器名;
原理:下面的代碼使用socket利用了系統(tǒng)查詢(xún)了相應(yīng)的internet上的dns解析和局域網(wǎng)中dns解析來(lái)獲得相應(yīng)的數(shù)據(jù)資料;
//代碼開(kāi)始
/*
本代碼只是提供測(cè)試,不提供完全的實(shí)際應(yīng)用的功能,但是你可以利用下面的思路開(kāi)發(fā)你自己的相應(yīng)的程序,請(qǐng)注意本文提供的socket通信在internet上查詢(xún)domain(或者ip)的功能不完全正確,因?yàn)楸疚氖褂玫膕ocket訪問(wèn)方式不是訪問(wèn)的相應(yīng)的domain數(shù)據(jù)庫(kù),所以不能實(shí)現(xiàn)精確的domain(或者ip)的查詢(xún),但是一切在internet上能被訪問(wèn)到的domain(或者ip)都可以都可以被查詢(xún)到相應(yīng)的ip(或者domain),如果需要你也可以使用本文所提及socket訪問(wèn)相應(yīng)的domain數(shù)據(jù)庫(kù)得到完全正確的domain查詢(xún)功能!在run下面的程序以前,請(qǐng)確定你已經(jīng)安裝了jdk1.3以及配置了相關(guān)的參數(shù)。
*/
import java.net.*;
class search
{
public static void main(String[] args)
{
try
{
InetAddress address=InetAddress.getByName(args[0]);
//獲得你要查詢(xún)的ip或者domain
System.out.println(address);
//輸出查詢(xún)結(jié)果
}
catch (Exception e)
{
//錯(cuò)誤提示
System.out.println("對(duì)不起,你查詢(xún)的站點(diǎn)或者IP未被程序找到,可能原因如下");
System.out.println("1,該站點(diǎn)尚未注冊(cè)或者該站點(diǎn)尚未啟用");
System.out.println("2.你沒(méi)有連接到網(wǎng)絡(luò)");
System.out.println("3.該ip地址可能已被DHCP解析,但是尚未指向相應(yīng)的站點(diǎn)");
}
}
}
//代碼結(jié)束
把上面的代碼save為search.java
好了進(jìn)入dos模式使用"javac search.java"編譯search.java為search.class,然后,我們就可以開(kāi)始使用我們的代碼來(lái)測(cè)試了!
1。如果你要查詢(xún)internet中domain,我們以www.sina.com為例你可以輸入:"java search www.sina.com" 你可以得到下面的結(jié)果:"www.sina.com/206.204.114.57",返回給你的數(shù)據(jù)中就包含了www.sina.com的ip地址;如果你再輸入:"java search 206.204.114.57"你返回的結(jié)果為"www.sina.com/206.204.114.57",同樣返回的結(jié)果包含了sina的domain,但是需要注意的如果你的ip解析了多個(gè)domain的話可能不能準(zhǔn)確的通過(guò)ip反查domain,而且有的站點(diǎn)為了訪問(wèn)的方便使用了不同的ip,即一個(gè)站點(diǎn)有幾個(gè)ip,這樣你返回的只是第一個(gè)ip地址,其他還有一些問(wèn)題就留待你自己去發(fā)現(xiàn)了,前面說(shuō)過(guò)本文只是給你提供一種思路;
2.在局域網(wǎng)中通過(guò)機(jī)器名反查ip:這點(diǎn)我相信是很有用的,嘿嘿,具體的使用方法和前面的差不多,但是你發(fā)現(xiàn)有了這個(gè)東西你可以很輕松的搞到任何人的相對(duì)應(yīng)的機(jī)器名和ip地址,不要亂用喲!當(dāng)然你也可以通過(guò)ip反查機(jī)器名;但是同樣有點(diǎn)不是問(wèn)題的問(wèn)題:如果該機(jī)器不存在的話是不會(huì)報(bào)錯(cuò)的,而是以一種前后都是ip的形式返回結(jié)果,好了,其他的我也不多說(shuō)了,你就慢慢的用吧!
上面給出的代碼可能對(duì)于不習(xí)慣java的朋友來(lái)說(shuō)不是很好操作,但是你可以把它改成applet在瀏覽器中運(yùn)行!
本文介紹的java功能只是java網(wǎng)絡(luò)功能部分中很小的一個(gè)部分,java強(qiáng)大的功能從本文提供的代碼只可以體現(xiàn)很小很小的一個(gè)部分,如果你的E文夠好,建議你多訪問(wèn)一下java.sun.com多學(xué)習(xí)一下java.!
備注:本人環(huán)境Win2000 professional+jdk1.3