Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ' My new router doesn't support no-ip
- ' So out of necessity this script does it for me.
- '
- ' by Iain Derrington @IDerrington
- ' for http://soldercore.com @SolderCore
- '
- '
- '
- 'URL of API to give me my routers external IP address.
- API_URL = "api.hostip.info"
- '
- 'no-ip stuff
- NOIP_URL = "dynupdate.no-ip.com"
- NOIP_PSWD = "add your password"
- HOST_NAME = "soldercore.no-ip.biz"
- '
- CLS
- '
- PRINT "Contacting: " + API_URL
- PRINT
- '
- S = SOCKET(API_URL, 80)
- IF S < 0 THEN
- PRINT $RED; "Failed to open socket"; $CYAN; REPORT S
- END
- ELSE
- 'Build the request string
- REQUEST = "GET /get_json.php HTTP/1.0"
- PRINT #S, REQUEST
- PRINT REQUEST
- PRINT #S, "Host: api.hostip.info"
- PRINT #S, "Authorization: None "
- PRINT #S, "User-Agent: SolderCore Update Client CoreBASIC 1.2.27 [email protected]"
- PRINT #S,
- '
- 'Checks the header
- CALL CHECK_HEADER
- CALL GET_PAYLOAD
- '
- IF LEN(PAYLOAD) = 0 THEN
- PRINT %RED; "Failed to get IP address"
- END
- ENDIF
- 'PRINT PAYLOAD
- 'exptract ip address.
- MYIP = LEFT(RIGHT(PAYLOAD, LEN(PAYLOAD) - INSTR("ip", PAYLOAD) - 5), - 2)
- PRINT "Bingo my Addres is " + MYIP
- CLOSE S
- ENDIF
- '
- PRINT "Contacting: " + NOIP_URL
- PRINT
- 'Open another socket
- S = SOCKET(NOIP_URL, 80)
- 'Did it open?
- IF S < 0 THEN
- PRINT $RED; "Failed to open Socket:"; $CYAN; REPORT S
- PAUSE 2
- ELSE
- 'Build the request string
- PRINT "Setting IP address"
- REQUEST = "GET /nic/update?hostname=" + HOST_NAME + "&myip=" + MYIP + " HTTP/1.0"
- PRINT #S, REQUEST
- PRINT REQUEST
- PRINT #S, "Host: dynupdate.no-ip.com"
- PRINT #S, "Authorization: Basic "; NOIP_PSWD
- PRINT #S, "User-Agent: SolderCore Update Client CoreBASIC 1.2.27 [email protected]"
- PRINT #S,
- '
- CALL CHECK_HEADER
- CALL GET_PAYLOAD
- PRINT "Result: " + PAYLOAD
- '
- ENDIF
- '
- END
- '
- DEFPROC CHECK_HEADER()
- HEADER = ""
- '
- 'Read the header info
- REPEAT
- TRY INPUT #S, INP AS STR
- IF NOT ERROR THEN
- ' PRINT; $GREEN; INP
- HEADER = HEADER + INP
- ENDIF
- HDRLEN = HDRLEN + LEN(INP)
- UNTIL ERROR OR ELSE INP = ""
- '
- IF MATCH("*200 OK*", HEADER) < 1 THEN
- PRINT $RED; "Error: Incorrect Header Response: "; %GREEN; HEADER
- TRY CLOSE S
- END
- ENDIF
- ENDPROC
- '
- DEFPROC GET_PAYLOAD()
- PAYLOAD = ""
- REPEAT
- TRY INPUT #S, INP AS STR
- IF NOT ERROR THEN
- PAYLOAD = PAYLOAD + INP
- ENDIF
- UNTIL ERROR OR ELSE INP = ""
- ENDPROC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement