본문 바로가기

프로그래밍/Python

외부에서 공유기 주소 알아내기

집 안에 설치해둔 Jetson Nano 서버에 접속하려면 IP 주소를 알아야한다.

 

현재는 공유기에 물려있으므로 포트포워딩이나 DMZ를 설정해줘야 한다.

 

나는 디바이스가 한개뿐이니 일단 DMZ를 통해 모든 요청을 Nano로 보내도록 설정하였다.

 

그리고 공유기에 표기된 IP 주소를 통해 ssh로 22번 포트 접속이 되는지 확인한다.

 

확인을 완료한 후. 

 

기존에 사용하던 텔레그램 응답봇을 이용하여 IP 요청에 공유기 주소를 반환하도록 하면

 

고정 IP가 아닌 서버에 언제든지 접속하여 사용할 수 있다.

 

 

import requests
my_token = '텔레그램 bot 토큰'
url='http://checkip.dyndns.org/'
cmd_help = '/reboot : 시스템을 재시작 합니다.\n' \
        +'/Ip : 공유기IP주소를 표시합니다'

def Ip_command(bot, update):
    try:
        res = requests.get(url)
        update.message.reply_text(res.text.split('<body>')[1].split('</body>')[0])
    except:
        update.message.reply_text('Ip error')
        
def get_message(bot, update) :
    print('get_message')
    update.message.reply_text(cmd_help)

updater = Updater(my_token)

Ip_handler = CommandHandler('Ip', Ip_command)
updater.dispatcher.add_handler(Ip_handler)

message_handler = MessageHandler(Filters.text, get_message)
updater.dispatcher.add_handler(message_handler)

updater.start_polling(timeout=3, clean=True)
updater.idle()

 

결과 

 

 

'프로그래밍 > Python' 카테고리의 다른 글

zipline 설치하는 방법  (0) 2019.12.22