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

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

3 голосов
/ 20 декабря 2009

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

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

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

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

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

спасибо Michael

Ответы [ 4 ]

4 голосов
/ 20 декабря 2009

Похоже, что вы делаете 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)
2 голосов
/ 20 декабря 2009
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
0 голосов
/ 20 декабря 2009

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

0 голосов
/ 20 декабря 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...