第一種是使用arping工具:
#!/usr/bin/env pythonimport 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":"
initem:
print item
if __name__ == "
__main__":
if len(sys.argv) > 1
:
for ip in sys.argv[1
"arping
", ip
arping(ip)
else
: arping()
這種方法依賴於特定平台的工具,整體就是使用了乙個系統呼叫。
第二種是使用scapy,這種方法可以實現平台無關化
#!/usr/bin/env pythonfrom
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
"arping
", ip
print arping(ip)
else
: print arping()
scapy編寫簡單的arp掃瞄指令碼 本課程基於 python 的 scapy 模組編寫,適合有 python 基礎的同學學習,最終完成乙個簡單的 arp 掃瞄指令碼。
Redhat nis client兩種接入方式
redhat nis client兩種接入方式 在redhat上nis client有兩種方式接入nis伺服器 etc nsswitch.conf和system config authentication 通過 etc nsswitch.conf的方式使用者只能通過yppasswd進行修改密碼且無法...
python threading 兩種建立方式
作用 建立在thread模組之上,可以更容易地管理多個執行執行緒。通過使用執行緒,程式可以在同乙個程序空間併發地執行多個操作。threading模組建立在thread的底層特性基礎上,可以更容易地完成執行緒處理。1 呼叫函式 要使用thread,最簡單的方法就是用乙個目標函式例項化乙個thread物...
兩種獲取Oracle Sequence的方法
前提 create table booking id integer not null,date made date,reserved until timestamp,price decimal 15,2 not null,purchase id integer,primary key id cre...