import socket,sys
port=
[135
,149
,445
,1433
,3306
,3389
,1521
]#常用埠
defopen
(ip,port)
:
s=socket.socket(
)#建立並返回socket物件
s.connect(
(ip,port)
)#將socket連線到乙個主機上
try:
s.connect(
(ip,port)
)return
true
except
:return
false
defscan
(ip)
:for x in port:
#遍歷port
ifopen
(ip,x)
:print
("%s host ,%s open"
%(ip,x)
)else
:print
("%s host %s close"
%(ip,x)
)def
rscan
(ip)
:for x in
range
(s,e)
:#遍歷多個埠
ifopen
(ip,x)
:print
("%s host ,%s open"
%(ip, x)
)else
:print
("%s host %s close"
%(ip, x))if
len(sys.ar**)
<2:
#如果當前指令碼小於三個個引數,顯示用法
print
('''
this program prints files to the standard output
any number of files can be specified.
options include:
python.py scan.py host ports
python.py scan.py 127.0.0.1
python.py scan.py 127.0.0.1 80,90,1433,3306,3389
python.py scan.py 127.0.0.1 80-90
python.py scan.py 127.0.0.1 all
''')if
len(sys.ar**)==2
:#如果有三個引數(如:python.exe scan.py 127.0.0.1)
scan(sys.ar**[1]
)#呼叫scan函式掃瞄第三個引數(即127.0.0.1)
elif
(len
(sys.ar**)==3
):#掃瞄多個埠並且埠之間用逗號隔開
if','
in sys.ar**[2]
: p=sys.ar**[2]
p=p.split(
',')
#分割開這些埠並轉換成列表
for x in p:
a=int(x)
)#將字元型別轉換成整型
port=a
scan(sys.ar**[1]
)elif
('-'
in sys.ar**[2]
):#掃瞄a[0]-a[1]之間的所有埠
a=sys.ar**[2]
a=a.split(
'-')
s=int(a[0]
) e=
int(a[1]
) rscan(sys.ar**[1]
)elif
(sys.ar**==
'all'):
#掃瞄從1-65536的所有埠
s=1 e=
65536
rscan(sys.ar**[2]
)
在cmd中開啟執行就可以了-
python網路程式設計 TCP網路程式設計
tcp程式設計 客戶端 import socket 1 套接字 tcp socket socket.socket socket.af inet,socket.sock stream 2 建立鏈結 tcp socket.connect 172.27.35.1 8080 3 傳送資訊 tcp socke...
python 網路程式設計
今天晚上學習了一下python的網路程式設計,實現了client向server傳送資料,server反饋資訊 python 3.3 版本 server from socket import class tcpserver object def init self,serverport self.se...
python網路程式設計
網路通訊是計算機之間的程序之間的通訊。tcp程式設計 tcp連線建立是雙向通道,客戶端與服務端都可以給對方傳送資料。建立tcp連線時,主動發起連線的叫客戶端,被動響應連線的叫服務端。建立乙個tcp的socket連線 用socket family,type 建立套接字獲得socket物件。family...