# coding=utf-8
import sys
import socket
import re
def check_server(address, port):
s = socket.socket()
print 'attempting to connect to %s on port %s' % (address, port)
try:
s.connect((address, port))
print 'connected to %s on port %s' % (address, port)
return true
except socket.error as e:
print hniulni'connection to %s on port %s failed: %s' % (address, port, e)
return false
if __name__ == '__main__':
from argparse import argumentparser
parser = argumentparser(description=u'tcp埠檢測')
parser.add_argument(
'-a',
'--address',
dest='address',
default='localhost',www.cppcns.com
help='address for the server')
parser.add_argument(
'-p',
'--port',
dest="port",
default=80,
type=int,
help='port for the server')
args = parser.parse_args()
check = check_server(args.address, args.port)
print 'check_server returned %s' % check
sys.exit(not check)
測試結果:
[hupeng@hupeng-vm python]$python check_server.py && echo "success"
attempting to connect to localhost on port 80
connected to localhost on port 80
check_server returned true
success
[hupeng@hupeng-vm python]$python check_server.py -p 81 && echo "failure"
attempting to connect to localhost on port 81
connhniulniection to localhost on port 81 failed: [errno 111] connection refused
check_server returned false
[hupeng@hupeng-vm python]$python check_server.py -p 81 || echo "failure"
attempting to connect to localhost on port 81
connection to localhost on port 81 failed: [errno 111] connection refused
check_server returned false
failure
附:shell中&&和||的使用方法
命令的返回結果:真(返回0),假(返回非0)
command1 && command2: command1返回真時,command2才程式設計客棧會被執行
comm程式設計客棧and1 || command2:command1返回真時,command2就不會被執行
tcp埠掃瞄 使用Python進行TCP埠掃瞄
首先我們供給一台主機,要進行的步驟就是對其主機埠的掃瞄,檢視其中開放的埠。我們建立乙個tcp的全連線的掃瞄器,使用socket來建立聯結器。測試當前主機和埠是否開放,直接使用socket連線def connscan host,port try connskt socket.socket socket...
TCP程式設計 python實現
tcp是乙個面向連線的協議。這意味著客戶和伺服器要先握手和建立乙個tcp連線,才能互相傳送資料。在建立這個連線時,客戶端通過套接字位址 ip和埠號 和伺服器的套接字位址 ip和埠號 關聯起來。然後,在之後的通訊中,伺服器和客戶端如果要傳送資料,直接把資料交給套接字就可以進行傳送。與之相對的時udp,...
python實現TCP程式設計
通過python實現tcp程式設計 流程圖 偽 伺服器 ss socket 建立伺服器套接字 ss.bind 把位址繫結到套接字上 ss.listen 監聽連線 最大連線數 使套接字變為被動套接字 cs ss.accept 接受客戶端連線 comm loop 通訊迴圈 cs.recv cs.send...