首先是最常用的埠掃瞄器:
雖說有nmap等強大的工具,不過如果由於條件限制無法安裝nmap呢?
我這個指令碼寫的比較簡單,預設掃瞄1-65535全部的埠
實際的話,可以根據需要自己修改指令碼來實現定製化掃瞄
#使用:-*- coding:utf-8 -*-
__author__ = "
yiqing
"import
socket
import
time
import
thread
import
optparse
import
resocket.setdefaulttimeout(3)
defport_scan(ip, port):
"""對某乙個ip的某乙個埠進行掃瞄
:param ip: 目標
:param port: 埠
:return: none
"""try
:
if port > 65535 or port < 1:
"[!] port scan end
"s =socket.socket(socket.af_inet, socket.sock_stream)
result =s.connect_ex((ip, port))
if int(result) ==0:
lock.acquire()
"[-] ip:
" + str(ip) + "
port:
" + str(port) + "
open
"lock.release()
s.close()
except
exception:
pass
defip_scan(ip):
"""對ip的所有埠掃瞄
:param ip:目標
:return: none
"""try
:
"[*] start port scan :
" +ip
start_time =time.time()
for port in range(1, 65535):
thread.start_new_thread(port_scan, (ip, int(port)))
"[+] port scan complete! time:
" + str(time.time() -start_time)
except
exception:
pass
defmain():
"""輸入引數處理
:return: none
"welcome to portscanner
"author: %s version:1.0
" % __author__
parse =optparse.optionparser(
'python %prog -h ')
parse.add_option('-h
', dest="
target_host
", type="
string
", help='
specify the host')
(options, args) =parse.parse_args()
target_host =options.target_host
if target_host is
not none and re.match(r'
\d\.\d\.\d\.\d
', target_host):
ip_scan(target_host)
else
: exit()
if__name__ == '
__main__':
lock =thread.allocate_lock()
main()
time.sleep(3)
raw_input(
"press enter to exit
")
Python指令碼 埠掃瞄器
乙個用python寫的簡單的埠掃瞄器,python環境為 3.7.0,windows系統 掃瞄給定主機是否開放了指定的埠tcp連線掃瞄是利用tcp的三次握手來確定主機的埠是否開放。確定主機埠開放之後,給埠傳送訊息,接收埠返回的訊息,然後判斷該埠執行的服務。使用時,h 引數可以提供主機的網域名稱或者i...
埠掃瞄器編寫 python
今天來編寫乙個 埠掃瞄器,掃瞄某個主機 開放的埠 對某個埠進行 socket 連線,如果連線成功,則代表 該埠有效,可以根據埠,判斷 是 哪個服務,很多情況下,都是很準確的。一共有 1 65535 個埠 其實0也可以用 coding utf 8 import socket socket.setdef...
TCP埠掃瞄器
乙個基於python3的tcp埠掃瞄器 原理 就是和不同的埠進行tcp連線,能連線成功就表示此埠是開放的,不能連線成就表示此埠是關閉的。import socket import re import threading import time lock threading.lock threads l...