- From: Bjoern Hoehrmann <derhoermi@gmx.net>
- Date: Mon, 01 Aug 2011 22:05:52 +0200
- To: www-archive@w3.org
Hi, This command line utility prints out how WinINet, which is used by Internet Explorer, processes URLs, via InternetCombineUrl which com- bines a base reference with a relative reference, and via Internet- CrackUrl, which splits URLs into various components. Sample output: % crack $: Absolute: $: Scheme: $ HostName: UserName: Password: UrlPath: ExtraInfo: % crack http://example.org $: Absolute: http://example.org/$: Scheme: http HostName: example.org UserName: Password: UrlPath: /$: ExtraInfo: Code is follows: #undef UNICODE #include <Windows.h> #include <WinInet.h> #include <stdio.h> #pragma comment(lib, "wininet.lib") int main(int argc, char *argv[]) { if (argc != 2 && argc != 3) { printf("Usage: `%s <URL>`, or `%s <Base> <Relative>`\n", argv[0], argv[0]); return 1; } DWORD length = 1024; char temp[1024]; char* absolute = argv[1]; if (argc == 3) { if (!InternetCombineUrl(argv[1], argv[2], temp, &length, 0)) return GetLastError(); absolute = temp; } URL_COMPONENTS parts; memset(&parts, 0, sizeof(parts)); parts.dwStructSize = sizeof(parts); parts.dwSchemeLength = 1; parts.dwHostNameLength = 1; parts.dwUserNameLength = 1; parts.dwPasswordLength = 1; parts.dwUrlPathLength = 1; parts.dwExtraInfoLength = 1; if (!InternetCrackUrl(absolute, strlen(absolute), 0, &parts)) return GetLastError(); printf("" "Absolute: %s\n" "Scheme: %.*s\n" "HostName: %.*s\n" "UserName: %.*s\n" "Password: %.*s\n" "UrlPath: %.*s\n" "ExtraInfo: %.*s\n", absolute, parts.dwSchemeLength, parts.lpszScheme, parts.dwHostNameLength, parts.lpszHostName, parts.dwUserNameLength, parts.lpszUserName, parts.dwPasswordLength, parts.lpszPassword, parts.dwUrlPathLength, parts.lpszUrlPath, parts.dwExtraInfoLength, parts.lpszExtraInfo ); return 0; } regards, -- Björn Höhrmann · mailto:bjoern@hoehrmann.de · http://bjoern.hoehrmann.de Am Badedeich 7 · Telefon: +49(0)160/4415681 · http://www.bjoernsworld.de 25899 Dagebüll · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/
Received on Monday, 1 August 2011 20:06:31 UTC