① python 怎樣判斷本機是否接入網路,有什麼好的辦法沒有
用urllib.urlopen讀取, 然後看下是否有「<title>網路一下」之類的關鍵詞比較靠譜, 比如
In [1]: import urllib
In [2]: is_online = u'<title>網路一下,你就知道' in urllib.urlopen("http://www..com/").read().decode('gbk')
In [3]: print is_online
True
② python獲取當前socket連接狀態,是連接還是斷開。
socket建立連接後,你可以在上面加一個超時,如果超時異常出現就是斷開了。
另外可以用select(inlist,writelist,errorlist,timeout)的辦法,去輪詢它。超過比如60秒,就認為它超時。
在操作系統層面,你可以用netstat
找到這個socket連接,看它的TCP狀態。如果到了CLOSE_WAIT,
TIME_WAIT,就是對方或者是自己關閉了。
如果是FIN2.。。。SEN。。或者是SYN_XXX就是還是連接或者是發送狀態中。
通常這些狀態在操作系統的TCP協議里都設置有超時。如果超時過了,它自己會關閉。然後變成WAIT狀態。
③ python 有沒有獲取,所在網路環境的出口 ip的包
獲取伺服器綁定的IP
importnetifacesasni
defgetLocalEthIps():
fordevinni.interfaces():
ifdev.startswith('eth0'):
ip=ni.ifaddresses(dev)[2][0]['addr']
ifipnotinipList:
ipList.append(ip)
printgetLocalEthIps()
④ python怎樣獲取連接的IP的設備信息
以前是有這樣的工具,它會通過常用協議去刺探設備類型。比如windows的版本,計算機名等。現在不知道還有沒有這樣的工具,搜索一下看。
哦。這個應該相當容易了。因為相機是專業設備。所以通常會有一個控制協議。因為是專業的,所以這個socket應該是加密的。 你只需要連接上後,隨便發一個命令,如果被斷開。很可能就是這個相機了。
另外相機通常都是有MAC地址的。如果你發現它在你預計的MAC地址范圍內,也可以知道是它。 相機是專業抓拍的。通常不會放在互聯網上,應該是區域網。你可以排除區域網上的其它計算機,自然了也就知道哪些是相機了。
這些都不是難題。你首先掃描所有的IP地址。再掃描它們的埠數量。如果埠數量多通常是計算機,如果埠只有1-2個就是專業設備。掃描不到的,應該就是計算機啦。
試試,並不難。
⑤ 請問如何使用python的正則表達式提取url鏈接
import re
m=re.search(r'//[0-9A-Za-z./]+',url)
具體要考慮連接里的字元,以及其他地方的正文字元
⑥ python怎麼獲取動態網頁鏈接
四中方法:
'''
得到當前頁面所有連接
'''
import requests
import re
from bs4 import BeautifulSoup
from lxml import etree
from selenium import webdriver
url = 'http://www.ok226.com'
r = requests.get(url)
r.encoding = 'gb2312'
# 利用 re
matchs = re.findall(r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')" , r.text)
for link in matchs:
print(link)
print()
# 利用 BeautifulSoup4 (DOM樹)
soup = BeautifulSoup(r.text,'lxml')
for a in soup.find_all('a'):
link = a['href']
print(link)
print()
# 利用 lxml.etree (XPath)
tree = etree.HTML(r.text)
for link in tree.xpath("//@href"):
print(link)
print()
# 利用selenium(要開瀏覽器!)
driver = webdriver.Firefox()
driver.get(url)
for link in driver.find_elements_by_tag_name("a"):
print(link.get_attribute("href"))
driver.close()
⑦ Python怎麼讀取Wifi連接狀態和信號強度
不知道怎麼回答你,這個問題有點寬泛,說一下你的平台環境吧,比如是什麼系統(安卓、windows、Linux、freeOS等)下,獲取的wifi模塊是什麼型號、這樣有對這一模塊了解的人可以回復你。
⑧ python判斷計算機是否有網路連接
java相對來說容易的。c語言 不是大神不敢去學的,python相對很少用。個人建議學java。
⑨ python 如何獲取當前網速 想用python獲取當前網速 各位大神幫幫忙 怎麼做
通常網路協議層的驅動程序,都會將發包的數量通知一個服務。如果通過通過這個服務獲得數量就可以知道網速。
另外有一些命令行工具也可以查看網速。你找一找。
如果都沒有辦法,你找一個winpcap,它有python的介面。這個安裝完一定可以查看網路速度。
不過你仔細看一下windows的API中應該有查看適配器狀態的功能。雖然沒有網速,不過是否斷開的狀態是有的。
此外你也可以使用netstat工具,tcpmp工具,查看。把查看的結果變換一下,就是網路速度。
⑩ python 能獲取網頁的網路請求嗎
(一)通過GET和POST方式獲取頁面內容
網路爬蟲,即Web Spider,是一個很形象的名字。
把互聯網比喻成一個蜘蛛網,那麼Spider就是在網上爬來爬去的蜘蛛。
HTTP協議中定義了四個與伺服器進行交互的方法,分別是GET, POST,PUT,DELETE ,實際對應對伺服器內容的「增」刪「改」查「四個操作
本篇文章主要記錄我學習GET和POST請求方式的過程
首先,如何區分GET 和POST請求?
我們可以簡單地通過瀏覽器地址欄是否改變來加以區分。舉例說明,在網路上搜索CSDN時,頁面會跳轉到搜索結果頁,同時瀏覽器上方的URL也會發生改變。
如上圖所示,變化就在於,在最初的url後面會附加相關的欄位,以?分割url和請求的數據,這些數據就是你要查詢欄位的編碼。。而這個過程,就是典型的GET請求的情況。
POST請求則顯得」深藏不露「。它在於你必須通過瀏覽器輸入或提交一些伺服器需要的數據,才能給你返回完整的界面,這點其實與GET請求情況有相通之處,但是這個過程瀏覽器的地址欄是不會發生跳轉的。
那POST請求提交的數據是如何傳給伺服器的呢?可以採用一些分析頁面的手段來獲取上傳的數據。實際上,POST請求是將提交的數據放在HTTP包的包體中,這種方式無疑加強了數據的安全性,不像GET請求那樣,用戶可以通過跳轉的url就可以查看出向伺服器發送的數據。另外,POST請求除了提交數據外,還可以提交文件,這點也是GET請求做不到的。
總的來說,在做數據查詢時,建議用GET方式;而在做數據添加、修改或刪除時,建議用POST方式。
下面用具體代碼展示GET與POST方式的差異
#coding =utf-8import urllib2
url="httcom"req=urllib2.Request(url)#req表示向伺服器發送請求#response=urllib2.urlopen(req)#response表示通過調用urlopen並傳入req返回響應response#the_page=response.read()#用read解析獲得的HTML文件#print the_page#在屏幕上顯示出來#1234567
這是一個最簡單的爬蟲程序,功能類似於打開網路主頁。如果你此時用瀏覽器打開網路並查看其源代碼,會發現屏幕上的內容和瀏覽器中完全一樣,也就是說,上面這四行代碼將我們訪問網路時瀏覽器收到的代碼們全部列印了出來。
這就是一個最簡單的GET的例子。
再來看一個POST方式的例子
#code=utf-8import urllib2
import urllib
url='http'//把要發送的數據寫成字典value={ 'name':'BUPT', 'age':'60', 'location':'Beijing'#字典中的內容隨意,不影響#}
data=urllib.urlencode(value)#對value進行編碼,轉換為標准編碼#req=urllib2.Request(url,data)#向url發送請求,並傳送表單data#response=urllib2.urlopen(req)#獲取響應#the_page=response.read()#解析#print the_page#顯示#123456789101112131415
程序運行之後,你可以試試將獲取的網頁源代碼用瀏覽器打開,會發現得到的頁面是這樣的
因為我們向網站提供的數據是隨便寫的,並不存在,所以就會得到這樣的結果。