用于Linux IP枚举的Python脚本-无法按预期工作

我编写了一个简单的脚本,允许我使用while循环在ip范围内迭代ping命令。

我不确定为什么以后继续收到此消息:

用于Linux IP枚举的Python脚本-无法按预期工作

代码如下:

import os

ipnum = 0

iprange = '10.11.1.%s' % (ipnum)
while ipnum < 255:
    os.system("ping " + iprange)
    ipnum + 1**

任何帮助将不胜感激。

tcj222022 回答:用于Linux IP枚举的Python脚本-无法按预期工作

听起来您想要的是这样的:

for ipnum in range(0,255):
    os.system("ping 10.11.1.%s" % ipnum)

您的代码当前执行ping操作10.11.1.0 255次,因为字符串不会仅仅因为ipnum进行更新。您一开始就将其格式化,然后就不要修改。

,

如果您要做的只是枚举给定范围内的活动IP列表,为什么不使用已存在的IP地址呢?

结帐nmap:

sudo nmap -sn -n 10.11.1.0- -oG - | grep -i Host | cut -d" " -f2

上面的命令:

  • nmap:扫描网络
  • -sn + -sP:跳过端口扫描
    • 更快的主机发现
  • -n:跳过反向DNS解析
    • 更快的主机发现
  • 10.11.1.-:列举10.11.1.0以上
    • 破折号指定要枚举
  • -oG-:转换输出以进行数据处理
  • grep -i主机:过滤输出以仅显示枚举值
    • 删除nmap输出的页眉和页脚
  • cut -d“” -f2:将输出分成以空格分隔的列,然后过滤以仅显示第二列。
    • 仅显示IP地址

样本输出

sudo nmap -sn -n 10.11.1.0.- -oG - | grep Host | cut -d" " -f2                                                            
# 10.11.1.0.1
# 10.11.1.0.100
# 10.11.1.0.101
# 10.11.1.0.103
# 10.11.1.0.106
# 10.11.1.0.169
# 10.11.1.0.108

Nmap支持扫描当前主机的网络范围以及任何其他网络范围。


如果您需要直接从python执行此操作,请使用subprocess模块。 https://docs.python.org/2/library/subprocess.html


有关nmap的更多信息:

https://linux.die.net/man/1/nmap

,

您使用了诸如nmap,angerip之类的工具。 如果您想要python,我们可以重写它

#!/usr/bin/python
import subprocess
target = 200
up = 0
down = 0
while (target < 255):
    ip = "10.11.1." +str(target)
    output = subprocess.Popen(["ping","-c","1",ip],stdout = subprocess.PIPE).communicate()[0]

    if ('Unreachable' in output):
            print 'Host ' + ip + " is offline or unavailable"
            down+= 1
    else:
            print "Host " + ip + " is online"
            up+= 1

    target = target+1


print "A total of " + str(up+down) + " hosts were scanned."
print str(up) + " hosts were alive,and " + str(down) + " hosts were unreachable. "
quit()
本文链接:https://www.f2er.com/3142887.html

大家都在问