写一段安卓上的端口扫描程序
时间: 2023-02-05 20:37:05 浏览: 87
这是一段使用 Java 编写的安卓端口扫描程序的示例代码:
```
import java.net.Socket;
public class PortScanner {
public static void main(String[] args) {
String host = "localhost"; // 要扫描的主机名或 IP 地址
int startPort = 1; // 要扫描的端口范围的起始端口
int endPort = 65535; // 要扫描的端口范围的结束端口
for (int i = startPort; i <= endPort; i++) {
try {
Socket socket = new Socket(host, i);
System.out.println("端口 " + i + " 已被占用");
socket.close();
} catch (Exception e) {
// 端口未被占用,不做处理
}
}
}
}
```
该程序将会扫描指定主机上的所有端口(在本例中是从 1 到 65535),如果端口被占用,就会在控制台输出“端口 X 已被占用”。
注意:扫描端口是一项资源密集型任务,因此应该谨慎使用。过多的端口扫描可能会导致网络性能下降,甚至可能被视为攻击行为。因此,在使用端口扫描程序时应该注意避免对网络造成过多影响。
相关问题
用python写一段互联网端口扫描程序
以下是用Python编写的一个基本的互联网端口扫描程序:
```
import socket
target_host = input("请输入你要扫描的目标主机IP地址:")
target_port = int(input("请输入你要扫描的端口号:"))
# 创建socket对象
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接目标主机
client.connect((target_host, target_port))
# 发送一些数据
client.send("GET / HTTP/1.1\r\nHost: baidu.com\r\n\r\n")
# 接收一些数据
response = client.recv(4096)
print(response)
```
这个程序将连接到指定的目标主机和端口,并发送一个简单的HTTP请求。如果成功连接并收到响应,将打印响应。这是一个非常基本的程序,但可以用作开始学习端口扫描的起点。
写一段基于多线程的端口扫描程序的代码
以下是基于多线程的端口扫描程序的代码:
```python
import socket
import threading
def scan_port(ip, port):
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((ip, port))
if result == 0:
print(f"Port {port} is open")
sock.close()
except:
pass
def scan(ip, start_port, end_port):
for port in range(start_port, end_port+1):
t = threading.Thread(target=scan_port, args=(ip, port))
t.start()
if __name__ == "__main__":
ip = "127.0.0.1"
start_port = 1
end_port = 65535
scan(ip, start_port, end_port)
```
这段代码使用了多线程来扫描指定 IP 地址的所有端口。首先定义了一个 `scan_port` 函数,用于扫描单个端口。然后定义了一个 `scan` 函数,用于循环调用 `scan_port` 函数,并创建多个线程来并发执行。最后在 `main` 函数中指定要扫描的 IP 地址、起始端口和结束端口,然后调用 `scan` 函数开始扫描。