1. Why?
You will be able to connect and host servers just like you did before gamespy was shut down, all you need to do is to edit your windows hosts file. The content in this file will override domain requests, an example would be:
The first part 65.112.87.186 is Qtracker's master server for nolf1 and then after the white space it says master.gamespy.com.65.112.87.186 master.gamespy.com
When the game asks for master.gamespy.com, windows will tell it to go to 65.112.87.186 instead. and Qtracker's server will reply instead of gamespy. this method will also work with Contract J.A.C.K
To read more about Qtracker, click HERE
2. How do I make this change?
I have two working sollutions here:
2a) Batch file
Create a empty .bat file somewhere and paste this content into it:
Then save it and run it as administrator. This will add the redirections from gamespy to qtracker for you@echo off
ECHO Redirecting server query from Gamespy to Qtracker
SET NEWLINE=^& echo.
ECHO.
ECHO Adding redirect to: 65.112.87.186 From: master.gamespy.com
ECHO.
FIND /C /I "master.gamespy.com" %WINDIR%\system32\drivers\etc\hosts
IF %ERRORLEVEL% NEQ 0 (
ECHO %NEWLINE%^65.112.87.186 master.gamespy.com>>%WINDIR%\System32\drivers\etc\hosts
) else (ECHO Redirect already exists, skipping)
ECHO.
ECHO Adding redirect to: 65.112.87.186 From: master0.gamespy.com
ECHO.
FIND /C /I "master0.gamespy.com" %WINDIR%\system32\drivers\etc\hosts
IF %ERRORLEVEL% NEQ 0 (
ECHO %NEWLINE%^65.112.87.186 master0.gamespy.com>>%WINDIR%\System32\drivers\etc\hosts
) else (ECHO Redirect already exists, skipping)
ECHO.
ECHO Adding redirect to: 63.239.170.53 From: motd.gamespy.com
ECHO.
FIND /C /I "motd.gamespy.com" %WINDIR%\system32\drivers\etc\hosts
IF %ERRORLEVEL% NEQ 0 (
ECHO %NEWLINE%^63.239.170.53 motd.gamespy.com>>%WINDIR%\System32\drivers\etc\hosts
) else (ECHO Redirect already exists, skipping)
ECHO.
ECHO Adding redirect to: 65.112.87.186 From: contractjack.available.gamespy.com
ECHO.
FIND /C /I "contractjack.available.gamespy.com" %WINDIR%\system32\drivers\etc\hosts
IF %ERRORLEVEL% NEQ 0 (
ECHO %NEWLINE%^65.112.87.186 contractjack.available.gamespy.com>>%WINDIR%\System32\drivers\etc\hosts
) else (ECHO Redirect already exists, skipping)
ECHO.
ECHO Adding redirect to: 65.112.87.186 From: contractjack.master.gamespy.com
ECHO.
FIND /C /I "contractjack.master.gamespy.com" %WINDIR%\system32\drivers\etc\hosts
IF %ERRORLEVEL% NEQ 0 (
ECHO %NEWLINE%^65.112.87.186 contractjack.master.gamespy.com>>%WINDIR%\System32\drivers\etc\hosts
) else (ECHO Redirect already exists, skipping)
ECHO.
ECHO Adding redirect to: 65.112.87.186 From: contractjack.ms11.gamespy.com
ECHO.
FIND /C /I "contractjack.ms11.gamespy.com" %WINDIR%\system32\drivers\etc\hosts
IF %ERRORLEVEL% NEQ 0 (
ECHO %NEWLINE%^65.112.87.186 contractjack.ms11.gamespy.com>>%WINDIR%\System32\drivers\etc\hosts
) else (ECHO Redirect already exists, skipping)
pause
without having to edit HOSTS manually
2b) Edit HOSTS manually
Open Notepad by rightclicking your notepad shortcut or notepad.exe file and "run as administrator"
1) browse to c: --> windows --> System32 --> drivers --> etc
2) Select to view "All Files (*.*)"
3) Open hosts

Before editing I would recommend saving a backup of the file, for instance hosts.old just in case you accidently delete everything or need it later.
Go to the bottom of the file and add these lines: (will also fix contract J.A.C.K)
65.112.87.186 master.gamespy.com
65.112.87.186 master0.gamespy.com
65.112.87.186 master1.gamespy.com
65.112.87.186 master2.gamespy.com
65.112.87.186 master3.gamespy.com
63.239.170.53 motd.gamespy.com
65.112.87.186 contractjack.available.gamespy.com
65.112.87.186 contractjack.master.gamespy.com
65.112.87.186 contractjack.ms11.gamespy.com
65.112.87.186 nolf.ms11.gamespy.com

Then replace the original hosts, make sure that the file is named hosts and not hosts.txt
This is windows 7, but the same method is confirmed working in windows 10 as well
When you launch nolf, the server query should look just like in the good old days:

You won't need to have Qtracker installed for this to work.