扫描端口命令(个人电脑搭建服务器)

使用python模块nmap,读取excel数据对多个ip端口探活扫描
我一个响指下去,每个人都要少一个睾丸。。。

扫描端口命令(个人电脑搭建服务器)1、工欲善其事必先利其器。安装python-nmap模块。

pip list #cmd或powershell下 查看已安装模块,至于pip命令环境变量,自己解决 pip install python-nmap

编写简单的nmap单端口跑一下看看效果。
'''如果安装了python-nmap模块还不能使用,那就自行安装nmap图形化界面,然后添加到环境变量里,这样就ok了,我的就是这样;'''

import nmap   
np = nmap.PortScanner()  
a = np.scan(hosts='42.247.22.192',ports='80',arguments='-v -n -T4')
print(a)

扫描端口命令(个人电脑搭建服务器)
扫描端口命令(个人电脑搭建服务器)

返回结果: (重要的地方我已标红,主要就是看返回端口状态和服务名)

{'nmap': {'command_line': 'nmap -oX - -p 80 -v -n -T4 42.247.22.192', 'scaninfo': {'tcp': 
{'method': 'syn', 'services': '80'}}, 'scanstats': {'timestr': 'Thu Jun 10 11:31:57 2022', 
'elapsed': '1.72', 'uphosts': '1', 'downhosts': '0', 'totalhosts': '1'}}, 'scan': {'42.247.22.192': 
{'hostnames': [{'name': '', 'type': ''}], 'addresses': {'ipv4': '42.247.22.192'}, 'vendor': 
{}, 'status': {'state': 'up', 'reason': 'syn-ack'}, 'tcp': {80: {'state': 'open', 'reason': 'syn-ack', 'name': 'http',
'product': '', 'version': '', 'extrainfo': '', 'conf': '3', 'cpe': ''}}}}}
2、下面对得到的数据整理一下输出,让他看起来简洁一些
import nmap   
np = nmap.PortScanner()  
a = np.scan(hosts='42.247.22.192',ports='80',arguments='-v -n -T4')
ip = '42.247.22.192'
for i in a['scan'][ip]['tcp'].keys():
    state = a['scan'][ip]['tcp'][i]['state']
    name = a['scan'][ip]['tcp'][i]['name'] 
    print(ip,i,state,name)
返回结果: 42.247.22.192 80 open http

扫描端口命令(个人电脑搭建服务器)

看着整洁多了。

后面关于excel读取和线程的代码我直接贴了,今天事情多不细说了。。

3、使用python调用excel模块和线程模块,读取excel数据,对多条数据进行扫描。

本文转载自:https://www.gylmap.com

import nmap
import threading
from openpyxl import load_workbook
from xlwt import Workbook

wk = Workbook(encoding='utf-8')
wsheet = wk.add_sheet('Worksheet')
co = {}
ls = []
def read_excel_file():
    wb = load_workbook('test/diqu.xlsx')   #读取excel文件
    # sheets = wb.get_sheet_names()
    # print(sheets)
    sheet = wb['暴露面资产全量']
    # print(sheet)
    m = sheet['G']      #读取excelG列,我的G列是 ip:port,例:1.1.1.1:80

    for cell in m:            #这个for循环用于分割ip和端口,存到co字典
        # print(cell.value)
        mn = cell.value.split(':')
        if mn[0] in co:
            co[mn[0]].append(mn[1]) 
        else:     
            try:    
                co[mn[0]] = [mn[1]]
            except:
                co[mn[0]] = []

def thread(ip_port):       # 设置线程
    thread_num = threading.Semaphore(20)     # 设置线程数
    thread_list = []
    for IP, port in ip_port.items():        # 创建线程
        t = threading.Thread(target=nmap_ping_scan, args=(IP, port, thread_num,))
        thread_list.append(t)
        # print(t)
    for t in thread_list:     # 开始线程
        t.start()

    for t in thread_list:    # 等待线程
        t.join()
    print('线程结束')

def nmap_ping_scan(ip,port,thread_num):    #使用nmap扫描,结果存入ls列表
    global ls
    strport = ','.join(ports for ports in port)
    thread_num.acquire()          # 线程锁
    try:
        nm = nmap.PortScanner()
        global result
        np = nm.scan(hosts=ip,ports=strport,arguments="-v -n -T4")
        for i in np['scan'][ip]['tcp'].keys():
            state = np['scan'][ip]['tcp'][i]['state']
            name = np['scan'][ip]['tcp'][i]['name']
            ls.extend([[ip,i,state,name]])
            # print(ip,i,state)
    except Exception as e:
        # print(e)
        pass
    thread_num.release()

def excel_write(ls):        #把ls列表的数据保存到新的excel中
    try:
        for u in range(len(ls)):
            p = 0
            for k in ls[u]:
                wsheet.write(u,p,k)
                p += 1
                # print(u,p,k)
    except:
        pass

if __name__ == '__main__':    #程序启动
    read_excel_file()
    thread(co)
    excel_write(ls)
    # print(ls)
    wk.save('ceshi.xls')
    # nmap_dan_scan(co)
    # print(ls)
#ok,上述就是全部代码了,上面是开了线程的,下面再加个单线程的方法吧
#使用方法,把def thread 和 def nmap_ping_scan 注释掉
# 再最后if里把 nmap_dan_scan(co) 注释解掉,上面俩个调用注释掉就行。

def nmap_dan_scan(ip_port):    #单线程跑跑
    for ip,port in ip_port.items():
        strport = ','.join(ports for ports in port)
        try:
            nm = nmap.PortScanner()
            np = nm.scan(hosts=ip,ports=strport,arguments="-v -n -T4")
            for i in np['scan'][ip]['tcp'].keys():
                state = np['scan'][ip]['tcp'][i]['state']
                print(ip,i,state)
        except:
            pass   
扫描的结果大概就是这个样子。

扫描端口命令(个人电脑搭建服务器)

#注#如果不想使用脚本这么麻烦的话,建议使用masscan命令比较简洁,这个命令有时扫描会存在波动,大多情况下还是不错的;(我是在centos下运行的)

写个平时用的栗子:masscan -p0-65535 -iL ip.txt –rate=2000 > masscan-scan.txt

秒鲨号所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈!本站将在三个工作日内改正。
(0)

大家都在看

  • 韩国手机品牌有哪些(2022年最新手机排行榜)

    智能手机市场竞争激烈,在为用户带来大量新品面市的同时,也令不少手机厂商因跟不上步伐而渐渐退出竞争。 此前,曾多次有消息提到,LG或放弃旗下的智能手机业务,但鉴于仍有不少LG新机信息…

    2022年3月21日
  • 朋友圈怎么关闭(如何关掉自己的朋友圈)

    嗨,大家好,我是大海,欢迎大家来欣赏我的文章,我每天给大家分享手机实用技巧,现在是网络时代,信息时代,每个人都离不开手机,无论是哪一种生活方式的人,每一个阶段的人来说都是非常重要的…

    2022年4月7日
  • 6厘6是多少(6厘是多大)

    库平重量的转换 以下是指前清中央规定的标准平砝,实际上各地所铸的银币在库平重量上还是有出入的. 本文转载自:https://www.gylmap.com 库平三分六厘是1.34克 …

    2022年5月24日
  • 时空猎人3商店购买推荐

    时空猎人3包括武器商城、芯片商城、友情商城等商店,每个商店能获得的物品不一样。很多玩家不清楚时空猎人3商店购买什么好,下面就来看看攻略分享吧。 时空猎人3商店购买什么好 1、【特惠…

    2022年5月29日
  • 海鲜怎么做好吃(家庭海鲜锅的做法大全)

    中秋家宴,做个鲜香四溢的海鲜锅,简单快手原汁原味太鲜美了。 九月,每年的中秋前后,是吃海鲜的季节,刚开海食材也丰富,各种鲜活的海鲜,应有尽有,即使减肥期间也可以放开吃,海鲜属于低脂…

    2022年4月11日 专栏投稿
  • 香港手机便宜多少(香港哪里买苹果便宜)

    来了来了!等了一年iPhone12 终于到来! 苹果召开秋季第二场新品发布会,发布了iPhone 12系列4款5G手机,分别为iPhone12 mini、iPhone 12、iPh…

    2022年5月20日 专栏投稿
  • 海马怎么的(海马8s)

    要说起海马汽车,在最近两年动荡不安的中国车市竟然还没有被淘汰出局,并不是因为它有多么顽强的品牌生命力,只能说多年之前有远见,在造车本身还比较挣钱的时候,囤积了几百套房产。去年在海马…

    2022年4月27日 专栏投稿
  • 私募和公募的区别(私募和信托的区别)

    基金按是否面向一般大众募集资金分为公募与私募: 公募基金 是受政府主管部门监管的,向不特定投资者公开发行受益凭证的证券投资基金,这些基金在法律的严格监管下,有着信息披露,利润分配,…

    2022年6月8日
  • 高校排行榜(有什么好大学推荐)

    高等教育专业评价机构软科 正式发布“2022软科中国大学排名” 小布注意到 2022软科中国大学排名主榜 (即综合性大学) 上榜高校共有590所 清华大学、北京大学、浙江大学 连续…

    2022年6月5日 专栏投稿
  • 英文怎么写好看(如何写漂亮的英语手写体)

    俗话说,字是人的脸面,工整、漂亮的书写令人赏心悦目。工整、漂亮的书写能给人留下非常美好的印象。汉字如此,英语也如此。有的人外表、能力什么的都很不错,但是却写出非常的糟糕的一把字,可…

    2022年3月30日
品牌推广 在线咨询
返回顶部