欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python扫描端口脚本_Python端口扫描简单程序

发布时间:2025/4/16 python 62 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python扫描端口脚本_Python端口扫描简单程序 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

本文实例为大家分享了Python端口扫描的实现代码,供大家参考,具体内容如下

获取本机的IP和端口号:

import socket

def get_my_ip():

try:

csock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

csock.connect(('8.8.8.8', 80))

(addr, port) = csock.getsockname()

csock.close()

return addr,port

except socket.error:

return "127.0.0.1"

def int_to_ip(int_ip):

return socket.inet_ntoa(struct.pack('I', socket.htonl(int_ip)))

def ip_to_int(ip):

return socket.ntohl(struct.unpack("I", socket.inet_aton(str(ip)))[0])

(ip,port)=get_my_ip()

print "ip=%s port=%d" %(ip,port)

PortScan.py

#!/usr/bin/python

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

import optparse

from socket import *

from threading import *

screenLock = Semaphore(value=1)

def connScan(tgtHost, tgtPort):

try:

connSkt = socket(AF_INET, SOCK_STREAM)

connSkt.connect((tgtHost, tgtPort))

connSkt.send('ViolentPython\r\n')

results = connSkt.recv(100)

screenLock.acquire()

print '[+] %d/tcp open' % tgtPort

print '[+] ' + str(results)

except:

screenLock.acquire()

print '[-] %d/tcp closed' % tgtPort

finally:

screenLock.release()

connSkt.close()

def portScan(tgtHost, tgtPorts):

try:

tgtIP = gethostbyname(tgtHost)

except:

print "[-] Cannot resolve '%s': Unknown host" %tgtHost

return

try:

tgtName = gethostbyaddr(tgtIP)

print '\n[+] Scan Results for: ' + tgtName[0]

except:

print '\n[+] Scan Results for: ' + tgtIP

setdefaulttimeout(1)

for tgtPort in tgtPorts:

t = Thread(target=connScan,args=(tgtHost,int(tgtPort)))

t.start()

def main():

parser = optparse.OptionParser('usage %prog '+\

'-H -p ')

parser.add_option('-H', dest='tgtHost', type='string',\

help='specify target host')

parser.add_option('-p', dest='tgtPort', type='string',\

help='specify target port[s] separated by comma')

(options, args) = parser.parse_args()

tgtHost = options.tgtHost

tgtPorts = str(options.tgtPort).split(',')

if (tgtHost == None) | (tgtPorts[0] == None):

print parser.usage

exit(0)

portScan(tgtHost, tgtPorts)

if __name__ == '__main__':

main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

总结

以上是生活随笔为你收集整理的python扫描端口脚本_Python端口扫描简单程序的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。