第一種是使用arping工具:
#!/usr/bin/env python
import subprocess
import sys
import re
def arping(ipaddress = "192.168.1.1"):
p = subprocess.popen("/usr/sbin/arping -c 2 %s" % ipaddress, shell = true,
stdout = subprocess.pipe)
out = p.stdout.read()
result = out.split()
for item in result:
if ":" in item:
print item
if __name__ == "__main__":
if len(sys.argv) > 1:
for ip in sys.argv[1:]:
print "arping", ip
arping(ip)
else:
arping()
這種方法依賴於特定平台的工具,整體就是使用了乙個系統呼叫。
第二種是使用scapy,這種方法可以實現平台無關化
#!/usr/bin/env python
from scapy import srp,ether,arp,conf
import sys
def arping(iprange="192.168.1.1/24"):
conf.verb = 0
ans,unans = srp(enter(dst="ff:ff:ff:ff:ff:ff")/arp(pdst=iprange),
timeout=2)
collection =
for snd, rcv in ans:
result = rcv.sprintf(r"%arp.psrc% %ether.src%").split()
return collection
if __name__ == "__main__":
if len(sys.argv) > 1:
for ip in sys.argv[1:]:
print "arping", ip
print arping(ip)
else:
print arping()
python arp指令碼的兩種方法
第一種是使用arping工具 usr bin env python import subprocess import sys import re def arping ipaddress 192.168.1.1 p subprocess.popen usr sbin arping c 2 s ipa...
執行 Shell 指令碼有兩種方法
1 作為可執行程式 將上面的 儲存為 test.sh,並 cd 到相應目錄 chmod x test.sh 使指令碼具有執行許可權.test.sh 執行指令碼 注意,一定要寫成 test.sh,而不是test.sh,執行其它二進位制的程式也一樣,直接寫 test.sh,linux 系統會去 path...
python呼叫shell指令碼的兩種方法
1.python呼叫shell指令碼,有兩種方法 os.system 和os.popen 前者返回值是指令碼的退出狀態碼,後者的返回值是指令碼執行過程中的輸出內容。help os.system help on built in function system in module posix syst...