Python отправить cmd на сокет

У меня есть простой вопрос о Python:

У меня есть другой скрипт Python, прослушивающий порт на машине с Linux. Я сделал это, чтобы я мог отправить ему запрос, и он сообщит другой системе, что она жива и слушает.

Моя проблема в том, что я не знаю, как отправить этот запрос из другого скрипта Python, работающего на той же машине (румянец)

У меня есть скрипт, работающий каждую минуту, и я хотел бы расширить его, чтобы также отправить этот запрос. Я не ожидаю получить ответ, мой скрипт прослушивания отправляет в базу данных.

В Internet Explorer я пишу так: http://192.168.1.46:8193/?Ping Я хотел бы знать, как сделать это из Python, и желательно просто отправлять и не зависать, если другой скрипт не запущен.

спасибо Майкл

4 ответа

Решение

Похоже, вы делаете HTTP-запрос, а не пинг ICMP.

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

Считается витой? То, что вы пытаетесь достичь, может быть взято прямо из их примеров. Это может быть излишним, но если вы в конечном итоге захотите начать добавлять аутентификацию, авторизацию, SSL и т. Д., Вы можете начать в этом направлении.

Это немного за пределами моих знаний, но, может быть, этот вопрос может помочь?

Пинговать сайт в Python?

Другие вопросы по тегам