當前位置:首頁 » 編程語言 » java掃描埠

java掃描埠

發布時間: 2022-06-16 13:09:33

java掃描區域網的埠

直接上代碼:

importjava.net.Socket;
importjava.text.SimpleDateFormat;
importjava.util.Date;

{

privateint[]p;
Socketss=null;

publicPortScanner(int[]p){
this.p=p;
}

publicstaticvoidmain(String[]args){
for(inti=0;i<65535;i=i+100){
newPortScanner(newint[]{i+1,i+100}).start();
}
}

@Override
publicvoidrun(){
for(inti=p[0];i<p[1];i++){
try{
ss=newSocket("8.8.8.8",i);
System.out.println("掃描到埠:"+i);
}catch(Exceptione){
//System.out.println("關閉埠:"+i);
}
}
}
}

❷ java如何做UDP埠掃描要用什麼函數

我不知道有沒有這樣的方法。
然後自己寫個循環
在用DatagramSocket(int port);這個構造方法的時候,假如拋異常了,就說明埠被佔用了。

❸ 請教大神,怎麼使用java實現UDP埠掃描

給你個UDP服務端與客戶端的示例:

服務端代碼:


importjava.net.DatagramPacket;
importjava.net.InetAddress;
importjava.net.MulticastSocket;

publicclassUDPMulticastServer{
finalstaticintRECEIVE_LENGTH=1024;

staticStringmulticastHost="224.0.0.1";

staticintlocalPort=9998;

publicstaticvoidmain(String[]args)throwsException{

InetAddressreceiveAddress=InetAddress.getByName(multicastHost);

if(!receiveAddress.isMulticastAddress()){//測試是否為多播地址

thrownewException("請使用多播地址");

}

intport=localPort;

=newMulticastSocket(port);

receiveMulticast.joinGroup(receiveAddress);


booleanisStop=false;
while(!isStop){
DatagramPacketdp=newDatagramPacket(newbyte[RECEIVE_LENGTH],RECEIVE_LENGTH);
receiveMulticast.receive(dp);
Stringdata=newString(dp.getData()).trim();
System.out.println(data);
if("exit".equals(data)){
System.out.println("程序退出");
isStop=true;
}
}

receiveMulticast.close();
}
}

客戶端代碼:


importjava.net.DatagramPacket;
importjava.net.InetAddress;
importjava.net.MulticastSocket;

publicclassUDPMulticastClient{
staticStringdestAddressStr="224.0.0.1";

staticintdestPortInt=9998;

staticintTTLTime=4;

publicstaticvoidmain(String[]args)throwsException{ InetAddressdestAddress=InetAddress.getByName(destAddressStr);

if(!destAddress.isMulticastAddress()){//檢測該地址是否是多播地址

thrownewException("地址不是多播地址");

}

intdestPort=destPortInt;


MulticastSocketmultiSocket=newMulticastSocket();

// intTTL=TTLTime;
// multiSocket.setTimeToLive(TTL);

byte[]sendMSG="exit".getBytes();

DatagramPacketdp=newDatagramPacket(sendMSG,sendMSG.length,destAddress,destPort);

multiSocket.send(dp);

multiSocket.close();

}

}

❹ 如何用java語言實現埠掃描器

使用 DatagramSocket(int port) 建立socket(套間字)服務。
將數據打包到DatagramPacket中去
通過socket服務發送 (send()方法)
關閉資源

public static void main(String[] args) {

DatagramSocket ds = null; //建立套間字udpsocket服務

try {
ds = new DatagramSocket(8999); //實例化套間字,指定自己的port
} catch (SocketException e) {
System.out.println("Cannot open port!");
System.exit(1);
}

byte[] buf= "Hello, I am sender!".getBytes(); //數據
InetAddress destination = null ;
try {
destination = InetAddress.getByName("192.168.1.5"); //需要發送的地址
} catch (UnknownHostException e) {
System.out.println("Cannot open findhost!");
System.exit(1);
}
DatagramPacket dp =
new DatagramPacket(buf, buf.length, destination , 10000);
//打包到DatagramPacket類型中(DatagramSocket的send()方法接受此類,注意10000是接受地址的埠,不同於自己的埠!)

try {
ds.send(dp); //發送數據
} catch (IOException e) {
}
ds.close();
}
}

接收步驟:

使用 DatagramSocket(int port) 建立socket(套間字)服務。(我們注意到此服務即可以接收,又可以發送),port指定監視接受埠。
定義一個數據包(DatagramPacket),儲存接收到的數據,使用其中的方法提取傳送的內容
通過DatagramSocket 的receive方法將接受到的數據存入上面定義的包中
使用DatagramPacket的方法,提取數據。
關閉資源。

import java.net.*;

public class Rec {

public static void main(String[] args) throws Exception {

DatagramSocket ds = new DatagramSocket(10000); //定義服務,監視埠上面的發送埠,注意不是send本身埠

byte[] buf = new byte[1024];//接受內容的大小,注意不要溢出

DatagramPacket dp = new DatagramPacket(buf,0,buf.length);//定義一個接收的包

ds.receive(dp);//將接受內容封裝到包中

String data = new String(dp.getData(), 0, dp.getLength());//利用getData()方法取出內容

System.out.println(data);//列印內容

ds.close();//關閉資源
}
}

❺ 如何 用java寫一個檢測埠的程序

進行一次http請求,看response返回是不是200,200就正確了。

❻ 修改一個JAVA源程序,使它能掃描指定IP的主機的UDP埠

單線程的
import java.net.*;
public class UDP
{

public static void main(String args[])
{
for (int port=0;port<=65535;port++) {
try {
DatagramSocket server=new DatagramSocket(port);
server.close();
}
catch(SocketException e) {
System.out.println("UDP埠"+port+"開放!");
}
}
}

}
希望能夠幫助到你,望採納!

❼ 如何用java實現tcp connect,tcp syn埠掃描

connect比較簡單,就是用Socket+多線程,每個埠創建一次連接,沒連上是不會往下執行的,會拋出異常,網上有源碼,都是這個方法。
syn和FIN還不知道咋實現,可以考慮用本地方法。

❽ 有沒有用java代碼操作nmap進行過埠掃描的

nmap埠狀態解析

open , 應用程序在該埠接收 TCP 連接或者 UDP 報文。

closed 關閉的埠對於nmap也是可訪問的, 它接收nmap探測報文並作出響應。但沒有應用程序在其上監聽。

filtered 由於包過濾阻止探測報文到達埠,nmap無法確定該埠是否開放。過濾可能來自專業的防火牆設備,路由規則 或者主機上的軟體防火牆。

unfiltered 未被過濾狀態意味著埠可訪問,但是nmap無法確定它是開放還是關閉。 只有用於映射防火牆規則集的 ACK 掃描才會把埠分類到這個狀態。

❾ java多線程TCP埠掃描程序有什麼用

你能說的詳細點嗎?
從字面上理解,應該是掃描計算機的埠,檢查是否可用之類的

❿ 用JAVA如何實現UDP埠掃描器

使用 DatagramSocket(int port) 建立socket(套間字)服務。
將數據打包到DatagramPacket中去
通過socket服務發送 (send()方法)
關閉資源

public static void main(String[] args) {

DatagramSocket ds = null; //建立套間字udpsocket服務

try {
ds = new DatagramSocket(8999); //實例化套間字,指定自己的port
} catch (SocketException e) {
System.out.println("Cannot open port!");
System.exit(1);
}

byte[] buf= "Hello, I am sender!".getBytes(); //數據
InetAddress destination = null ;
try {
destination = InetAddress.getByName("192.168.1.5"); //需要發送的地址
} catch (UnknownHostException e) {
System.out.println("Cannot open findhost!");
System.exit(1);
}
DatagramPacket dp =
new DatagramPacket(buf, buf.length, destination , 10000);
//打包到DatagramPacket類型中(DatagramSocket的send()方法接受此類,注意10000是接受地址的埠,不同於自己的埠!)

try {
ds.send(dp); //發送數據
} catch (IOException e) {
}
ds.close();
}
}

接收步驟:

使用 DatagramSocket(int port) 建立socket(套間字)服務。(我們注意到此服務即可以接收,又可以發送),port指定監視接受埠。
定義一個數據包(DatagramPacket),儲存接收到的數據,使用其中的方法提取傳送的內容
通過DatagramSocket 的receive方法將接受到的數據存入上面定義的包中
使用DatagramPacket的方法,提取數據。
關閉資源。

import java.net.*;

public class Rec {

public static void main(String[] args) throws Exception {

DatagramSocket ds = new DatagramSocket(10000); //定義服務,監視埠上面的發送埠,注意不是send本身埠

byte[] buf = new byte[1024];//接受內容的大小,注意不要溢出

DatagramPacket dp = new DatagramPacket(buf,0,buf.length);//定義一個接收的包

ds.receive(dp);//將接受內容封裝到包中

String data = new String(dp.getData(), 0, dp.getLength());//利用getData()方法取出內容

System.out.println(data);//列印內容

ds.close();//關閉資源
}
}

希望能夠幫助到你,望採納!

熱點內容
androidbug 發布:2025-02-06 23:31:56 瀏覽:50
php數字判斷 發布:2025-02-06 23:17:40 瀏覽:40
優路教育伺服器連接不上怎麼回事 發布:2025-02-06 23:03:49 瀏覽:141
資料庫加速 發布:2025-02-06 23:02:14 瀏覽:565
蘋果ipodpro如何連接安卓手機 發布:2025-02-06 23:00:56 瀏覽:529
android格式化sd卡 發布:2025-02-06 23:00:50 瀏覽:982
郝斌資料庫 發布:2025-02-06 22:44:57 瀏覽:182
全息存儲器 發布:2025-02-06 22:43:51 瀏覽:117
游戲源碼如何使用 發布:2025-02-06 22:43:40 瀏覽:716
表與資料庫 發布:2025-02-06 22:42:47 瀏覽:440