/* Initialize variables */ debug = 0 ip = "" header = "0D0A"X||"Obscure.rex, Version 1.00"||"0D0A"X, ||"Obscure the specified URL by converting the host name to a decimal IP address"||"0D0A"X, ||"and by adding a hostname (either vake or valid) as a fake login name."||"0D0A"X footer = "Note: Security settings of your browser may block use of decimal addresses"||"0D0A0D0A"X, ||"Written by Rob van der Woude"||"0D0A"X||"http://www.robvanderwoude.com" explan = "Explanation:"||"0D0A"X, ||"Let us take the fictional http://somehost.com/sources/ and let's assume"||"0D0A"X, ||"somehost.com's IP address is 1.2.3.4. The decimal representation of the"||"0D0A"X, ||"IP address is: 1 * 256^3 + 2 * 256^2 + 3 * 256 + 4 = 16909060"||"0D0A"X, ||"(try pinging 16909060, it will show 1.2.3.4 as the address being pinged)"||"0D0A"X, ||"So the URL could also be written as http://16909060/sources/"||"0D0A"X, ||"Any URL may be preceded with a (fake) user ID followed by an @"||"0D0A"X, ||"So we can further obscure the URL by adding a (fake) host name:"||"0D0A"X, ||"http://fake.host@16909060/sources/ still points to http://somehost.com/sources/"||"0D0A"X /* Hide external commands */ "@ECHO OFF" Trace Off /* Parse command line arguments */ Parse Arg url debug dummy If url = "" Then Call Syntax If dummy <> "" Then Call Syntax If debug <> "" Then Do If Translate( debug ) = "-DEBUG" Then Do debug = 1 End Else Do Call Syntax End End /* Split URL into protocol. host name and path */ Parse Value url With prot"://"host"/"path If host = "" Then Do prot = "" Parse Value url With host"/"path End If path = "" Then Do If Right( url, 1 ) = "/" Then path = "/" End Else Do path = "/"||path End /* Convert host name to IP address using PING command */ "PING "||host||" -n 1 | RXQUEUE" Do Until Queued() = 0 Parse Pull line If Pos( "[", line ) > 0 Then Parse Value line With ."["ip"]". End /* Slit IP address into 4 octets */ Parse Value ip with ip1"."ip2"."ip3"."ip4 /* Error message if no 4 octets */ If ip4 = "" Then Do Say Say "Invalid host name or host not available" Call Syntax "SHORT" End /* Add leading zeroes to octets if necessary, and concatenate 4 hex octets into 8 digit hex number */ iphex = Right( D2X( ip1 ), 2, "0" )||Right( D2X( ip2 ), 2, "0" )||Right( D2X( ip3 ), 2, "0" )||Right( D2X( ip4 ), 2, "0" ) /* Convert hexadecimal IP address to decimal */ Numeric Digits 10 ipdec = X2D( iphex ) /* Show intermediate results if requested */ If debug = 1 Then Do Say Say "URL = "||url Say "Protocol = "||prot Say "Host name = "||host Say "IP Address = "||ip Say "Hexadecimal IP = "||iphex Say "Decimal IP = "||ipdec Say "Path = "||path End If prot <> "" Then prot = prot||"://" Say header Say footer Say Say "Obscured URL examples:" Say Say " "||prot||ipdec||path Say " "prot||"www.whateveryoulike.here@"||ipdec||path /* Done */ Exit 0 Syntax: Say Say header Say Say "Usage: OBSCURE.REX url [ -DEBUG ]" Say Say 'Where: "url" can be any valid URL, host name or IP address' Say ' "-DEBUG" displays intermediate results' Say If Arg( 1 ) <> "SHORT" Then Say explan Say footer Exit 1 Return