这个用于扫描子网的python代码有什么问题?

时间:2017-09-25 18:47:51

标签: python python-3.x

此代码用于查找每个主机使用ping的活动主机。但我遇到了一些问题。我的代码:

#!/usr/bin/python
import os 
global lis
lis = []
global cnt
cnt = 0 
print("Scanning the Subnet : ")
subnet_input = input("->> ")
subnet_input = subnet_input.split(".")
for x in range(98,105):
    subnet_input[3] = x
    str(subnet_input)
    new_sub = str(subnet_input[0])+'.'+str(subnet_input[1])+'.'+str(subnet_input[2])+'.'+str(subnet_input[3])
    res = os.system("ping -c 4 {}".format(new_sub))
    if res==0:
        cnt = cnt+1
        print("[*] {} is Alive".format(new_sub))
        str(new_sub)
        lis.append(new_sub)
print('--------------------------------------')
print("[*] ALL ALIVE HOSTS ARE {}".format(cnt))
print('--------------------------------------')

print(lis)

我收到以下错误:

Traceback (most recent call last):
File "Ping.py", line 8, in <module>
subnet_input = input("->> ")
File "<string>", line 1
192.168.1.0
        ^

1 个答案:

答案 0 :(得分:2)

使用python 2,用户发送给input()的内容会通过eval(),因此会出错。

您可以改为使用raw_input(),也可以切换为python 3