扫描ip的所有端口

import openpyxl
from  openpyxl.utils  import coordinate_from_string,column_index_from_string
import socket
import  threading

ports=[]     #获取所有的要扫描的端口,并加入列表
port_list = []    ##扫描到的端口
wb=openpyxl.load_workbook("F:\\test\\test.xlsx")
sheets=wb.get_sheet_names()
count=len(sheets)
ws_port=wb.get_sheet_by_name(‘port‘)

for row in ws_port.iter_rows(min_row=2,min_col=1,max_col=1):
    port=[port.value for port in row]
    ports.append(port[0])    ###获取要扫描的端口

def write_port_value(sheet,ports,port_list):  #将扫描到的端口写入到ip的后一列

    for row in sheet.iter_rows(min_row=2,min_col=1,max_col=1):   ##遍历行
        for ip in row:                                          ##遍历行的单元格
            location=ip.coordinate     ##获取坐标位置
            xy = coordinate_from_string(location)
            x = column_index_from_string(xy[0])   ##获取行号
            y = xy[1]               ##获取列号
            ip=ip.value             #获取单元格的值
            #scan_port(ip,ports,port_list)   ##扫描端口

            th = threading.Thread(target=scan_port, args=(ip,ports,port_list))
            th.start()
            threads.append(th)
            P = ",".join(port_list)  ##将列表转换成字符串
            sheet.cell(row=y,column=x+1).value=P  ##将扫描的端口写入到ip后的单元格
            port_list = []

def scan_port(ip,ports,port_list):    #扫描端口
                  #储存扫描到的端口
    for port in ports:
        conn=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        conn.settimeout(3)
        try:
            conn.connect((ip,port))
            print(‘{} {}  is ok‘.format(ip,port))
            port=str(port)
            port_list.append(port)  #将端口加入列表
        except  Exception as e:
            print(‘{} {}is unreachable‘.format(ip,port))

if __name__ == ‘__main__‘:
    threads = []
    print(sheets,count)
    for i in range(1,count):
        print(i)
        sheet=wb.get_sheet_by_name(sheets[i])
        write_port_value(sheet,ports,port_list)
    for th in threads:
        th.join()
    wb.save(‘F:\\test\\test_new.xlsx‘)

  可以填写多个网段  每个sheet表是一个 网段

原文地址:https://www.cnblogs.com/xiao-ge/p/11024561.html

时间: 2024-10-12 02:29:53

扫描ip的所有端口的相关文章

批量扫描IP端口程序 (适用于window&linux)

批量扫描IP端口,根据扫描IP导出IP命名的文件的结果.假设1.txt文件内容为127.0.0.1192.168.1.1然后我们获取文件内容IP进行扫描window .bat版本 :1.txt为文件名,根据需求进行修改 :C:\nmap\nmap-6.46\nmap.exe 为namp的路径,根据需求进行修改 :把1.txt与该扫描脚本放一起 @echo off for /f "delims=." %%i in (1.txt) do C:\nmap\nmap-6.46\nmap.exe

程序内执行shell命令自动获取局域网内所有在线IP和开放端口(Linux)

前言 题目说的有点长,其实就是以下几件事,第一是让Shell命令可以在程序内执行,然后将执行结果传递给变量,从而可以进行后续的事务处理,第二是使用nmap命令获取当前局域网内所有在线IP和开放的端口,最后就是对nmap获得的结果进行处理,得到只有IP和端口的结果. Linux命令行的强大功能相信使用Linux的人都知道,一个命令等于你在windows用几百行甚至上千行的代码量才能实现,所以,如果很好的利用shell命令,可以说是事半功倍. 而要充分利用shell的结果,必然是需要获得可以处理的命

python例子-Nmap扫描IP并更新

# (1).将111.206.217.0/24.218.75.110.0/24两个网段IP地址插入proxy.nmap_ip表中,type字段按照个人序号插入. def readIpByAddr(): ip_list= [] for i in range(255): i = '111.206.217.%s' % i j = '218.75.110.%s' % i ip_list.append(i) ip_list.append(j) return ip_list def readIpByFile

思科交换机 查看某个端口下的IP地址 及 IP查交换机端口

交换机端口 查IP地址 1.进入交换机特权模式  查 F0/10 端口的 MAC地址 #:show mac-address-table interface F0/17 Mac Address Table ------------------------------------------- Vlan    Mac Address       Type        Ports ----    -----------       --------    ----- 200    2857.be99

ip地址+进程端口号+路径参数同样实现restful访问

1.ip地址+进程端口号+路径参数同样实现restful访问 2. 我:还有个问题,龙哥,ip地址+端口+路径参数,也能实现restful访问吧,:可以 我:好我:所以,我只要访问,服务器ip地址+nginx端口号+路径参数,就能跳转到对应的tomcat,对吧?:是的

[Windows Server 2008] IP安全策略限制端口方法

★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:限制1433端口的安全策略 相比于Windows自带的防火墙,采用安全策略限制端口有更灵活的限制规则. 本节将演示只允许特定的远程服务器访问本机的1433端口(SQL Server服务). 操作思路:禁止所有用户访问1433端口,只允许个别IP访问.(安全策略里面允许的优先级大于禁 止) 1.添加“IP筛选”

设置IIS服务器监听特定IP的特定端口(IIS与IHS或Apache共存的解决方案)

在灾难恢复的试验中,遇到了一个IIS无法启动的情况,会报如下的错误: "The network location cannot be reached, xxxxxx" 要知道,Windows报的这种弹窗错误,也只能通过Windows自带的事件管理器里查看了.直接运行:eventvwr,打开SYSTEM项,一个大大的错误映入眼帘: 所以错误就很明显了,没有把我们的新地址添加到监听列表里... 根据搜索,发现仅仅用IIS的图形界面工具,似乎无法让IIS去监听某一个IP地址的某个端口,必须要

docker容器端口IP规划及端口动态扩容

docker容器一旦启动,参数就无法改变,生产环境中最常变的就是端口映射,为了解决这个问题,那么首先就要规划好,本文列出了两种端口规划方案,如果后续维护中出现了要增加端口映射的场景,本文也给出了动态端口映射扩容方案. 1.单IP多容器映射规划方案 此种环境适用只有单个IP环境下,如云主机等. 1.1 端口映射规划表格:     规划不同的端口段,映射到容器从而对外提供服务. 主机名称 ssh映射 mysql映射 nginx映射 redis映射 redis-test 51000 22 51001

通过IP查找交换机端口(CISCO)

一.简介 在一个Cisco 交换网络中间,已知某台机器的IP地址,如何找出它连接到了哪台交换机的哪个端口上呢?本章将实验演示. 很基础的查找命令,但是有时候很多人都会忘记,当然,对新手除外. 1.(特权模式):show ip arp | include 你想查找的IP.此命令可查找出IP对应MAC地址 2.(特权模式):show mac address-table address MAC地址.此命令可找出MAC地址对应的端口 在这种情况下,一般要从汇聚层开始查找,查到端口后,进入到接入层交换机再