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 <target host> -p <target port>')
  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 扫描端口、python端口扫描器、python 批量扫描端口、python udp端口扫描、python多线程端口扫描,以便于您获取更多的相关知识。

时间: 2024-07-28 14:51:41

Python端口扫描简单程序_python的相关文章

python端口扫描系统实现方法_python

本文实例讲述了python端口扫描系统实现方法.分享给大家供大家参考.具体实现方法如下: 该程序的主要功能如下: 1. 从自有API接口获取所有的外网IP段: 2. 用Nmap 遍历扫描所有的IP段,-oX 生成XML的扫描报告: 3. 用xml.etree.ElementTree模块方法读取XML文件,将ip,开放端口,对应服务等写入Mysql数据库. 功能很简单,没有满足老大高大上的需求,所以这个小项目就这么英勇的挂掉了!~~~完全都还没考虑程序异常终止,扫描服务器异常歇菜的情况. 贴上代码

Python实现的多线程端口扫描工具分享_python

昨晚今晚写了两晚,总算把Py Port Scanner 写完了,姑且称之为0.1版本,算是一个Python多线程端口扫描工具. 水平有限,实话中间有一些困惑和不解的地方,代码可能也写的比较乱.有些问题并未找到很好的解决方法,还望大家谅解.速度大家自己试验,我感觉还行. 送上效果图两份,分别是扫单IP和扫IP段: 源码: 复制代码 代码如下: # -*- coding: utf-8 -*- __author__ = 'Phtih0n' import threading, socket, sys,

python实现进程间通信简单实例_python

本文实例讲解了python实现两个程序之间通信的方法,具体方法如下: 该实例采用socket实现,与socket网络编程不一样的是socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)的第一个参数是socket.AF_UNIX 而不是 socket.AF_INET 例中两个python程序 s.py/c.py 要先运行s.py 基于fedora13/python2.6测试,成功实现! s.py代码如下: #!/usr/bin/env python im

videocapture库制作python视频高速传输程序_python

1,首先是视频数据[摄像头图像]的采集,通常可以使用vfw在vc或者vb下实现,这个库我用的不好,所以一直不怎么会用.现在我们用到的是python的videocapture库,这个库用起来很简单,如下: 复制代码 代码如下: from VideoCapture import Devicecam = Device()cam.setResolution(320,240)   #设置显示分辨率cam.saveSnapshot('demo.jpg') #抓取并保存图片 这样,你就得到了一张图片.当然,要

用map函数来完成Python并行任务的简单示例_python

众所周知,Python的并行处理能力很不理想.我认为如果不考虑线程和GIL的标准参数(它们大多是合法的),其原因不是因为技术不到位,而是我们的使用方法不恰当.大多数关于Python线程和多进程的教材虽然都很出色,但是内容繁琐冗长.它们的确在开篇铺陈了许多有用信息,但往往都不会涉及真正能提高日常工作的部分. 经典例子 DDG上以"Python threading tutorial (Python线程教程)"为关键字的热门搜索结果表明:几乎每篇文章中给出的例子都是相同的类+队列. 事实上,

Python多线程编程简单介绍_python

创建线程 格式如下 复制代码 代码如下: threading.Thread(group=None, target=None, name=None, args=(), kwargs={}) 这个构造器必须用关键字传参调用 - group 线程组 - target 执行方法 - name 线程名字 - args target执行的元组参数 - kwargs target执行的字典参数 Thread对象函数 函数 描述 start() 开始线程的执行 run() 定义线程的功能的函数(一般会被子类重写

Python选课系统开发程序_python

本文程序针对Python选课系统进行开发,供大家参考,具体内容如下 角色:学校.学员.课程.讲师要求: 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开 3. 课程包含,周期,价格,通过学校创建课程 4. 通过学校创建班级, 班级关联课程.讲师 5. 创建学员时,选择学校,关联班级 5. 创建讲师角色时要关联学校, 6. 提供两个角色接口 7. 学员视图, 可以注册, 交学费, 选择班级, 8. 讲师视

python基础教程之udp端口扫描_python

一.概述任务描述:开发一个程序,用于获取局域网中开启snmp服务的主机ip地址列表,并写入相应文件以便其它程序使用.背景知识:SNMP是基于UDP的,而且标准的SNMP服务使用161和162端口.思路:1.获取局域在线主机列表:2.获取各个主机的snmp端口(比如161)开启状况:3.以特定格式写入特定文件.这里只实现前两步. 二.nmap实现1.安装nmapLinux平台(CentOS为例): yum install nmap -y     widows平台(下载地址):http://nmap

一个简单的端口扫描程序题

一.TCP扫描技术 常用的端口扫描技术有很多种,如 TCP connect() 扫描 .TCP SYN 扫描.TCP FIN 扫描 等,网络上也有很多文章专门介绍,比如 :http://www.antai-genecon.com/suml/zhishiyy/jingong/duankougj.htm 上就介绍了很多我的程序 所使用的最基本的扫描技术:TCP 扫描. 操作系统提供的 connect() 系统调用,用来与每一个感兴趣的目标计算机的端口进行连接.如果端口处于侦听状态,那么connect