Автоматизация HTTP GET / POST в OSX - PullRequest
0 голосов
/ 01 января 2012

Мне нужно высвобождать мой IP-адрес на маршрутизаторе каждый час.Страница маршрутизатора требует простой аутентификации и нажатия кнопки, чтобы сделать процесс.Это HTTP-вызовы:

Аутентификация

GET /RST_st_dhcp.htm HTTP/1.1
Host: 10.10.1.1
Authorization: Basic YWRtaW46cGFzc3dvcmQ=
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

Отпустить нажатие кнопки

POST /st_dhcp.cgi?id=1044071018 HTTP/1.1
Host: 10.10.1.1
Content-Length: 31
Cache-Control: max-age=0
Authorization: Basic YWRtaW46cGFzc3dvcmQ=
Origin: http://10.10.1.1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://10.10.1.1/RST_st_dhcp.htm
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

connect=Release&refreshScrn=yes

Как это можно автоматизировать в OSX?Можно ли написать сценарии автоматизации для этого?

1 Ответ

0 голосов
/ 01 января 2012

Вы можете просто использовать curl, чтобы сделать этот запрос - что-то вроде

curl -e http://10.10.1.1/RST_st_dhcp.htm \
  -d 'connect=Release&refreshScrn=yes' -u user:password \
  'http://10.10.1.1/st_dhcp.cgi?id=1044071018'

Вам нужно проверить, имеет ли значение id в URL.Если нет, то выше должно быть все, что вам нужно.Если это произойдет, возможно, вам придется сделать первый запрос, чтобы получить id из его полезной нагрузки.

...