Code:
FUNCTION GetPublicIPAddress(BYVAL PortNumber AS LONG) AS STRING 'Return dotted public ip address from checkip.dyndns.com 'Pass 80 to lookup on primary port or 8245 for secondary LOCAL buffer, temp, site AS STRING LOCAL StartByte,LastByte,nSocket AS LONG Site = "checkip.dyndns.com" nSocket = FREEFILE TCP OPEN PORT PortNumber AT site AS nSocket TIMEOUT 5000 IF ERR THEN EXIT FUNCTION TCP PRINT nSocket, "GET " & " HTTP/1.0" TCP PRINT nSocket, "Accept: */*" TCP PRINT nSocket, "Accept-Language: en-us" TCP PRINT nSocket, "Host: " & site TCP PRINT nSocket, "Pragma: no-cache" TCP PRINT nSocket, "Referer: URL=http://www.MySite.com" TCP PRINT nSocket, "User-Agent: MySite.com" TCP PRINT nSocket, "" DO TCP RECV nSocket, 4096, buffer temp = temp & buffer LOOP UNTIL LEN(Buffer) = 0 OR ERRCLEAR TCP CLOSE nSocket 'Hard-coded to only work with checkip.dyndns.com! StartByte = INSTR(UCASE$(temp),"<BODY>CURRENT IP ADDRESS: ") IF StartByte THEN StartByte = StartByte + 26 LastByte = INSTR(StartByte,UCASE$(temp),"</BODY>") FUNCTION = MID$(temp,StartByte,LastByte-StartByte) END IF END FUNCTION
Comment