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()