USA wir etwas schwierig, weil die IP-Adress-Blöcke nicht länderweise vergeben werden. Relativ einfach ist die Erfassung der IP-Adress-Blöcke, die ARIN innehat:
https://www.arin.net/knowledge/ip_blocks.html
Das schließt Kanada noch mit ein.
Wenn du weiterleiten möchtest, bräuchte man hierzu Modrewrite. Ich würde dies in etwa so probieren:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^192\.0\.2\.1$
RewriteCond %{REMOTE_ADDR} !^192\.0\.2\.3$
RewriteCond %{REMOTE_ADDR} !^192\.0\.2\.6$
RewriteCond %{REMOTE_ADDR} ^24\. [OR]
RewriteCond %{REMOTE_ADDR} ^50\. [OR]
# ... und so weiter ...
RewriteCond %{REMOTE_ADDR} ^209\. [OR]
RewriteCond %{REMOTE_ADDR} ^216\.
RewriteRule .* http://example.com/north-america.html [R]
192.0.2.1 etc. sind die Adressen, die nicht weitergeleitet werden (deswegen das "!"); die Adressbereiche von ARIN kannst du der oben verlinkten Liste entnehmen - deren RewriteConds musst du mit einem [OR] mit der jeweils nächsten RewriteCond verknüpfen