5、AutoImage 下载器在计算机视觉项目中,收集图像数据是一个关键挑战。正如 Andrew
Ng 所说,如果你能收集到大量数据集,那么算法就不重要了。数据在提高模型性能和准确性方面起着关键作用。
# 导入所需的模块和函数
from simple_image_download import simple_image_download as simp
# 创建一个响应对象,用于处理图片下载
response = simp.simple_image_download
# 设置关键词
keyword = "Dog" # 指定下载的图片关键词为“Dog”
# 下载图片
try:
response().download(keyword, 20) # 调用下载方法,尝试下载20张关键词为“Dog”的图片
print("Images downloaded successfully.") # 如果下载成功,则输出成功消息
except Exception as e:
print("An error occurred:", e) # 如果下载过程中出现异常,输出错误信息
6、端口扫描器 谈谈网络安全!
在计算机网络中,端口是允许不同进程或服务连接并通过网络交换数据的通信端点。端口通过数值标识,并与特定协议相关联。
# 导入socket库用于网络连接
import socket
# 导入PrettyTable库用于生成表格,使输出结果更易于阅读
from prettytable import PrettyTable
# 定义一个字典,其中包含常用端口及其潜在的安全漏洞描述
vulnerabilities = {
80: "HTTP(超文本传输协议) - 用于非加密的网页流量",
443: "HTTPS(安全的HTTP) - 用于加密的网页流量",
22: "SSH(安全外壳协议) - 用于安全的远程访问",
21: "FTP(文件传输协议) - 用于文件传输",
25: "SMTP(简单邮件传输协议) - 用于电子邮件传输",
23: "Telnet - 用于远程终端访问",
53: "DNS(域名系统) - 用于域名解析",
110: "POP3(邮局协议第3版) - 用于电子邮件获取",
143: "IMAP(互联网消息访问协议) - 用于电子邮件获取",
3306: "MySQL - 用于MySQL数据库访问",
3389: "RDP(远程桌面协议) - 用于Windows的远程桌面连接",
8080: "HTTP备用端口 - 常用作HTTP的次要端口",
8000: "HTTP备用端口 - 常用作HTTP的次要端口",
8443: "HTTPS备用端口 - 常用作HTTPS的次要端口",
5900: "VNC(虚拟网络计算) - 用于远程桌面访问",
# 根据需要可继续添加更多端口及其安全漏洞描述
}
# 定义一个函数,显示开放端口及其潜在的安全问题
def display_table(open_ports):
table = PrettyTable(["开放端口", "潜在安全问题"])
for port in open_ports:
vulnerability = vulnerabilities.get(port, "此端口没有与常见服务相关联的已知漏洞")
table.add_row([port, vulnerability])
print(table)
# 定义一个函数,扫描目标主机的常用端口
def scan_top_ports(target):
open_ports = [] # 存储开放端口的列表
top_ports = [21, 22, 23, 25, 53, 80, 110, 143, 443, 3306, 3389, 5900, 8000, 8080, 8443] # 定义常见的15个端口
for port in top_ports:
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1) # 设置连接超时时间
result = sock.connect_ex((target, port))
if result == 0:
open_ports.append(port)
sock.close()
except KeyboardInterrupt:
sys.exit()
except socket.error:
pass
return open_ports
# 主函数
def main():
target = input("请输入要扫描的网站URL或IP地址:")
open_ports = scan_top_ports(target)
if not open_ports:
print("目标主机没有开放的端口。")
else:
print("开放的端口及其相关的潜在安全问题:")
display_table(open_ports)
# 如果这个脚本被直接运行
if __name__ == "__main__":
main()