전에도 잠깐 해본적 있는데 다시 읽어보니 병신같이 적어뒀네...

# -*- coding: utf-8 -*-
#
# 헐 사무실에 공유기가 안보여서 집에 원격접속해서 간단히 upnp 테스트
# 코드를 돌려봤다. 걍 버리긴 그렇고 해서 적어둔다.
#
from socket import socket,AF_INET,SOCK_DGRAM

s = socket(AF_INET, SOCK_DGRAM)
discovery = "M-SEARCH * HTTP/1.1\r\n" + \
"Host:239.255.255.250:1900\r\n" + \
"ST:urn:schemas-upnp-org:device:InternetGatewayDevice:1\r\n" + \
"Man:\"ssdp:discover\"\r\n" + \
"MX:3\r\n" + \
"\r\n"
if s.sendto(discovery, ("239.255.255.250", 1900)) != len(discovery):
print "send error"
else:
print "send done"

print "try recvfrom"
(data,addr) = s.recvfrom(8192)
s.close()

print addr
print data

디스크립션을 보려면 위의 응답으로 떨어지는 location 에 그냥 브라우저 열고 GET 때려보면 된다.
SOAP 으로 제어하는건... 이전 위키에 있으니 생략.. 음 혹시나 테스트코드를 또 만들게되면 적어두자.




태그 : Python,upnp