Tuesday, December 14, 2010

PsychicDebugging - You can browse to www.google.com, but you can't ping it.

In my last message to the world I though I'd fixed my networking, but turns out I hadn't. Here's the state of affairs:
  • IE; Chrome and Firefox work perfectly.
  • ping www.google.com fails instantly with hostname not found
  • nslookup www.google.com works
  • From python socket.gethostaddr ('www.google.com',80) fails instantly.
This had me stumped, I assumed the web browsers must be calling different apis from ping.  A few invocations of cdb, and I realized the apps that worked are all 32 bit. That was the trick, my 64 bit NSP catalog was also corrupted; and thus all 64bit apps couldn’t resolve networking.   Luckily from yesterdays shenanigans I had exported the catalog from the registry and re-loaded it. 
To look at the catalog use the powershell:
PS HKLM:\> dir HKLM:\SYSTEM\CurrentControlSet\services\WinSock2\Parameters\NameSpace_Catalog5\Catalog_Entries64 | % {$_.GetValue("LibraryPath")}
c:\Program Files (x86)\Microsoft Firewall Client 2004\FwcWsp64.dll
%SystemRoot%\system32\NLAapi.dll
%SystemRoot%\System32\mswsock.dll
%SystemRoot%\System32\winrnr.dll
%SystemRoot%\system32\napinsp.dll
%SystemRoot%\system32\pnrpnsp.dll
%SystemRoot%\system32\pnrpnsp.dll
%SystemRoot%\system32\wshbth.dll
C:\Program Files\Common Files\Microsoft Shared\Windows Live\WLIDNSP.DLL
C:\Program Files\Common Files\Microsoft Shared\Windows Live\WLIDNSP.DLL
In summary if someone asks how it’s possible the browser works but they can’t ping www.google.com – try checking their 64 bit NSP catalog.

No comments: