[英]Python send cmd on socket
我有一個關於Python的簡單問題:
我有另一個Python腳本偵聽Linux機器上的端口。 我已經做到了所以我可以向它發送一個請求,它會通知另一個系統它還活着並且在聽。
我的問題是我不知道如何從同一台機器上運行的另一個python腳本發送此請求(腮紅)
我每分鍾運行一個腳本,我想擴展它以發送此請求。 我不希望得到回復,我的監聽腳本會提到數據庫。
在Internet Explorer中,我這樣寫: http : //192.168.1.46 : 8193 /?我想知道如何從Python中執行此操作,並且最好只是發送而不是掛起,如果其他腳本沒有運行。
謝謝邁克爾
看起來您正在執行HTTP請求,而不是ICMP ping。
urllib2 ,內置於Python,可以幫助您做到這一點。
你需要覆蓋超時,這樣你就不會拖得太久。 直接從上面的那篇文章中,這里有一些示例代碼供您調整所需的超時和URL。
import socket
import urllib2
# timeout in seconds
timeout = 10
socket.setdefaulttimeout(timeout)
# this call to urllib2.urlopen now uses the default timeout
# we have set in the socket module
req = urllib2.Request('http://www.voidspace.org.uk')
response = urllib2.urlopen(req)
import urllib2
try:
response = urllib2.urlopen('http://192.168.1.46:8193/?Ping', timeout=2)
print 'response headers: "%s"' % response.info()
except IOError, e:
if hasattr(e, 'code'): # HTTPError
print 'http error code: ', e.code
elif hasattr(e, 'reason'): # URLError
print "can't connect, reason: ", e.reason
else:
raise # don't know what it is
這有點超出我的意識,但也許這個問題可能會有所幫助?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.