日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中用socket检测端口_python基于socket函数实现端口扫描

發布時間:2024/7/19 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中用socket检测端口_python基于socket函数实现端口扫描 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文實例為大家分享了python基于socket實現端口掃描的具體代碼,供大家參考,具體內容如下

自學Python一段時間,寫個端口掃描器練練手。有什么不足之處,請見諒

這是基于socket函數對端口進行端口掃描

所以,首先要導入socket模塊

from socket import *

其次,通過正側表達式來判斷輸入的是不是IP地址

compile_ip = re.compile(

'^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$')

這里是核心代碼

# -*- coding: utf-8 -*-

from socket import *

import re

from pip._vendor.distlib.compat import raw_input

def portscaner(host,port):

try:

s = socket(AF_INET, SOCK_STREAM) # 實例化socket

s.connect((host,port)) #對對應主機的對應端口發起連接

print('主機%s的%s端口處于打開狀態'%(host,port))

s.close() #關閉連接

Export_Data(port) #調用Export_Date

except Exception as e:

pass #利用異常處理,對無法建立連接的端口pass掉

def ChecK_Host(host): #利用正側表達式匹配host,判斷是否符合IP地址的格式 并且輸入不為空

compile_ip = re.compile(

'^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$')

if compile_ip.match(host) and len(host)!=0: #host符合IP地址的格式且不為空值返回True,否則返回False

return True

else:

return False

def Export_Data(port): #導出數據

port = str(port) #將port轉換為字符串類型

date = open('Active_Port.txt', 'a') #在文件尾部寫入數據,Active_Port.txt,若不存在就新建文件

date.write(port+'\n') #將port并行寫入文件

date.close() #不要忘了關閉文件

def main(host): #主模塊

if ChecK_Host(host): #通過ChecK_Host()函數return 的布爾值進行判斷輸入的IP地址是否有誤

for port in range(1,65536): #這里可以改成1024

portscaner(host, port)

print('\n')

print('已將結果導出到 Active_Port.txt')

else:

print('IP地址無錯誤,請重新輸入!!!')

if __name__ == '__main__':

print('' * 12)

host = input('請輸入有效的目標IPv4地址:')

main(host)

raw_input('Press Enter to exit...') #當腳本執行完后,等待鍵入Enter回車才退出程序(可有可無,主要是為了封裝成exe可執行文件后,執行完程序dos界面不自動退出)

測試結果

可見目的主機的21端口處于開放狀態

掃描結束后,將存活的端口寫入到Active_Port.txt

這里沒有用到多線程,通過循環,一個一個端口進行連接,掃描速度非常慢。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持我們。

本文標題: python基于socket函數實現端口掃描

本文地址: http://www.cppcns.com/jiaoben/python/314408.html

總結

以上是生活随笔為你收集整理的python中用socket检测端口_python基于socket函数实现端口扫描的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。