!/usr/bin/env python3
import random
import socket
import time
import sys
import os
print ('Ping Of Death')
os.system("clear")
print
ip_death = input("ip:")
packetsize = input("size:")
print (ip_death)
os.system("ping ip_death, -s packetsize ")
我得到的输出是
ping: ip_death,: Name or service not known
我知道变量的定义是因为我已经测试过print (ip_death)
,并且总是随输入一起出现。
我是python的新手,只是想知道如何在一个命令中运行这两个变量。如果不知道我要运行Ping example.com -s "size of packet"
。
您需要格式化字符串:
os.system("ping {}, -s {}".format(ip_death, packet_size))
您还可以通过在执行命令之前打印命令来验证您在做正确的事情:
command = "ping {}, -s {}".format(ip_death, packet_size)
print(command) # see that its what you wanted to execute
os.system(command)
目前,您刚刚将名称烘焙到字符串中。 Python不能自动地知道应该格式化和不应该格式化。
也-黑帽黑客行为很糟糕<3
os.system(f"ping {ip_death}, -s {packetsize} ")
您可以使用f-strings
将变量直接插入字符串。 f-strings
由f"{variable}"
定义>
注意:
os.system(f"ping {ip_death}, -s {packetsize} ")
仍然会失败,逗号将在
cmd
中引发错误,
Ping请求找不到主机192.168.0.1 ,。请检查名称,然后重试。
您需要删除逗号才能使其起作用;
os.system(f"ping {ip_death} -s {packetsize} ")
ping 192.168.0.1 -s 1
使用32个字节的数据对192.168.0.1进行Ping:
从192.168.0.1答复:字节= 32时间<1ms TTL = 255
时间戳:192.168.0.1:4742664