[英]IP address as the hostname for AppHarbor / App Engine urlfetch to cache DNS lookups
[英]how to setup “ip address”,“DNS”, “hostname”,“MAC address” in python?
我想編寫用於網絡安全IP掃描的腳本,這樣的工具可能需要欺騙其主機NIC狀態以進行測試,例如,設置NIC的IP地址,設置DNS地址,同時設置主機名,MAC地址和啟用/禁用NIC適配器。
我在Google上搜索后發現,大多數靈魂是使用“ popen”調用系統現有的工具,例如
>>> import os
>>> p=os.popen("/sbin/ifconfig eth0")
>>> t=p.read()
>>> p.close()
從系統中獲得回報。 另外,還有一些模塊可以讀取NIC的狀態,例如netifaces,但似乎所有模塊都是“只讀”的,但不能直接寫入。
由於我發現沒有模塊可以直接設置NIC狀態,因此我在這里尋求幫助,以查看是否有人可以幫忙或提供更好的方法。
任何提示將被應用。 謝謝!
Rgs KC
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#
# Copyright 2014 by mimvp.com
def get_valid_ip(cls, ip_str):
ip_str_new = ''
ip_re = re.compile(r'\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b')
ipList = ip_re.findall(ip_str)
if len(ipList) >= 1:
ip_str_new = ipList[0]
ip_str_new = ip_str_new.lstrip("0") # '05.9.87.163' ==> '5.9.87.163'
return ip_str_new
if __name__ == '__main__':
result = os.popen("/sbin/ifconfig en0 | grep broadcast")
ip_inet = result.read()
for ip_str in ip_inet.split(" "):
if self.get_valid_ip(ip_str) :
print ip_str
之前我曾經做過,沒有像這樣的低級特定於OS的東西的顯式Python os接口。 您只需要為UNIX(/ Windows / Mac)命令編寫一個(特定於操作系統的)包裝器即可。 這並不難,只是乏味。
os.popen *()從2.4開始非常不推薦使用,請使用subprocess module 。
subprocess.Popen()的接口確實令人討厭 ,您幾乎肯定會為自己的理智編寫一個包裝器,以提供合理的默認arg值並整理您的代碼。 顯然,請密切注意命令退出狀態,路徑前綴等。不確定您是否在乎可移植性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.