[英]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.