Python端口扫描简单程序


Posted in Python onNovember 10, 2016

本文实例为大家分享了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/ironpython:从入门到精通
Oct 02 Python
在CMD命令行中运行python脚本的方法
May 12 Python
python调用tcpdump抓包过滤的方法
Jul 18 Python
python 找出list中最大或者最小几个数的索引方法
Oct 30 Python
Python 实现自动获取种子磁力链接方式
Jan 16 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
Mar 27 Python
python matplotlib.pyplot.plot()参数用法
Apr 14 Python
Python在线和离线安装第三方库的方法
Oct 31 Python
使用PyCharm官方中文语言包汉化PyCharm
Nov 18 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
Jan 06 Python
Python如何利用正则表达式爬取网页信息及图片
Apr 17 Python
python自动化测试通过日志3分钟定位bug
Nov 20 Python
Python迭代和迭代器详解
Nov 10 #Python
python通过cookie模拟已登录状态的初步研究
Nov 09 #Python
Python内置函数OCT详解
Nov 09 #Python
windows10系统中安装python3.x+scrapy教程
Nov 08 #Python
简单谈谈python中的多进程
Nov 06 #Python
python自带的http模块详解
Nov 06 #Python
Python程序中设置HTTP代理
Nov 06 #Python
You might like
一个可以删除字符串中HTML标记的PHP函数
2006/10/09 PHP
基于PHPExcel的常用方法总结
2013/06/13 PHP
php中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
php-app开发接口加密详解
2018/04/18 PHP
location.search在客户端获取Url参数的方法
2010/06/08 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
2014/03/03 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
AngularJs 指令详解及示例代码
2016/09/01 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
利用Blob进行文件上传的完整步骤
2018/08/02 Javascript
详解ES6 Symbol 的用途
2018/10/14 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
vue webpack重写cookie路径的方法
2019/07/10 Javascript
Ant design vue中的联动选择取消操作
2020/10/31 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
Python入门_学会创建并调用函数的方法
2017/05/16 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
python实现栅栏加解密 支持密钥加密
2019/03/20 Python
Djang的model创建的字段和参数详解
2019/07/27 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
python字符串的index和find的区别详解
2020/06/20 Python
关于人生的感言
2014/01/17 职场文书
科学育儿宣传标语
2014/10/08 职场文书
初三毕业感言
2015/07/31 职场文书
Elasticsearch 批量操作
2022/04/19 Python
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript