pythonlinuxip
Ⅰ python 如何獲取linux 默認網關
簡單的做法是使用重定向:
把後面的命令輸出當做前面的輸入
a = raw_input()
print a
使用命令 python input.py < ip route show | grep "default"
Ⅱ linux下python怎麼寫爬蟲獲取圖片
跟linux有什麼關系,python是跨平台的,爬取圖片的代碼如下:
import urllib.requestimport osimport randomdef url_open(url):
req=urllib.request.Request(url) #為請求設置user-agent,使得程序看起來更像一個人類
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0') #代理IP,使用戶能以不同IP訪問,從而防止被伺服器發現
'''iplist=['1.193.162.123:8000','1.193.162.91:8000','1.193.163.32:8000']
proxy_support=urllib.request.ProxyHandler({'http':random.choice(iplist)})
opener=urllib.request.build_opener(proxy_support)
opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/42.0.2311.154 Safari/537.36 LBBROWSER')]
urllib.request.install_opener(opener)'''
response=urllib.request.urlopen(req)
html=response.read() return htmldef get_page(url):
html=url_open(url).decode('utf-8')
a=html.find('current-comment-page')+23
b=html.find(']',a) #print(html[a:b])
return html[a:b]def find_imgs(url):
html=url_open(url).decode('utf-8')
img_addrs=[]
a=html.find('img src=') while a!=-1:
b=html.find('.jpg',a,a+140) if b!=-1: if html[a+9]!='h':
img_addrs.append('http:'+html[a+9:b+4]) else:
img_addrs.append(html[a+9:b+4]) else:
b=a+9
a=html.find('img src=',b) for each in img_addrs:
print(each+'我的列印') return img_addrsdef save_imgs(folder,img_addrs):
for each in img_addrs: #print('one was saved')
filename=each.split('/')[-1] with open(filename,'wb') as f:
img=url_open(each)
f.write(img)def download_mm(folder='ooxx',pages=10):
os.mkdir(folder)
os.chdir(folder)
url=""
page_num=int(get_page(url)) for i in range(pages):
page_num=page_num-1
page_url=url+'page-'+str(page_num)+'#comments'
img_addrs=find_imgs(page_url)
save_imgs(folder,img_addrs)if __name__=='__main__':
download_mm()
完成
運行結果
Ⅲ linux下的python裡面如何用相關的網路模塊來重啟tp-link路由器
哈哈,你說的這個我也做過,給你段我寫的代碼
#-*-coding:utf-8-*-
#重啟路由器腳本
#
importurllib2,base64
#192.168.1.1
#admin:admin(BASE64編碼)
if__name__=='__main__':
#請求地址
url='http://192.168.1.1/userRpm/SysRebootRpm.htm?Reboot=重啟路由器'
#驗證的用戶名和密碼
login_user='admin'
login_pw='admin'
auth='Basic'+base64.b64encode('admin:admin')
printauth
heads={'Referer':'http://192.168.1.1/userRpm/SysRebootRpm.htm',
'Authorization':auth
}
#請求重啟路由器
request=urllib2.Request(url,None,heads)
response=urllib2.urlopen(request)
printresponse.read()
Ⅳ linux python怎麼獲得本級所有ip
>>> from socket import socket, SOCK_DGRAM, AF_INET
>>> s = socket(AF_INET, SOCK_DGRAM)
>>> s.connect(('google.com', 0))
>>> s.getsockname()
('192.168.1.113', 43711)
Ⅳ python怎麼獲取本機ip
importsocket
defget_ip():
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
try:
#doesn'tevenhavetobereachable
s.connect(('10.255.255.255',0))
IP=s.getsockname()[0]
except:
IP='127.0.0.1'
finally:
s.close()
returnIP
linux、windows均測試通過版權
Ⅵ 求知:python+selenium使用自己伺服器多個IP的切換
可以考慮修改路由表的方法,Windows和Linux的route命令略有不同內。容
Win7系統
route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2
Linux系統
ip route change to 192.168.0.0/24 dev eth0 src 192.168.0.22
Ⅶ 想用python語言修改Linux下/etc/sysconfig/network-scrips/ifcfg-eth1下的IP內容並保存。請指點~~
eth1= raw_input("eth1 configure:\n")
with open("/etc/sysconfig/network-scrips/ifcfg-eth1","a") as f:
f.write(eth1)
Ⅷ linux 怎樣用python提取ping的結果中的錯誤回應
如果是在標准錯誤輸出的信息,應該在err裡面去取的,而不是在ping_result
Ⅸ 在linux下,python怎麼才能抓到網卡上的所有TCP數據包
Ethereal 自帶許多協議的 decoder,簡單,易用,基於winpcap的一個開源的軟體.但是它的架構並不靈活,如何你要加入一個自己定義的的解碼器,得去修改 Ethereal的代碼,再重新編譯,很煩瑣.對於一般的明文 協議,沒有什麼問題,但是對於加密協議,比如網路游戲,客戶端程序一般會在剛連接上的時候,發送一個隨機密鑰,而後的報文都會用這個密鑰進行加密,如此. 要想破解,得要有一個可編程的抓包器.
libpcap是一個不錯的選擇,但是對於抓包這樣需要反復進行」試 驗->修改」這個過程的操作,c 語言顯然不是明智的選擇.
Python提供了幾個libpcapbind。在windows平台上,你需要先安裝winpcap,如果你已經安裝了Ethereal非常好用
一個規范的抓包過程
import pcap
import dpkt
pc=pcap.pcap() #注,參數可為網卡名,如eth0
pc.setfilter('tcp port 80') #設置監聽過濾器
for ptime,pdata in pc: #ptime為收到時間,pdata為收到數據
print ptime,pdata #...
對抓到的乙太網V2數據包(raw packet)進行解包
p=dpkt.ethernet.Ethernet(pdata)
if p.data.__class__.__name__=='IP':
ip='%d.%d.%d.%d'%tuple(map(ord,list(p.data.dst)))
if p.data.data.__class__.__name__=='TCP':
if data.dport==80:
print p.data.data.data # by gashero
一些顯示參數
nrecv,ndrop,nifdrop=pc.stats()
返回的元組中,第一個參數為接收到的數據包,(by gashero)第二個參數為被核心丟棄的數據包。