Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有可能用PHP阻止整个美国州访问我的网站?_Php_Javascript_Ip - Fatal编程技术网

有没有可能用PHP阻止整个美国州访问我的网站?

有没有可能用PHP阻止整个美国州访问我的网站?,php,javascript,ip,Php,Javascript,Ip,我有一个客户想阻止整个美国州访问他的网站。他认为这不是完美的。这可能吗 我发现这项服务:没有任何精确性。通过IP进行地理定位有助于形成一个总体思路,但这通常是不正确的,尤其是对于具有国家或地区足迹的大型ISP而言 我住在纽约,但我的手机显示为堪萨斯州,该地区的一些ISP显示为德克萨斯州。使用您提到的Maxmind服务 您需要在index.php中更改以下行;(需要更改的行) 对此,;(新行) 没有直接关系,但他为什么要阻止他网站的特定状态?直接询问用户不是更好吗?我见过一些主要网站(如医疗保健)

我有一个客户想阻止整个美国州访问他的网站。他认为这不是完美的。这可能吗


我发现这项服务:

没有任何精确性。通过IP进行地理定位有助于形成一个总体思路,但这通常是不正确的,尤其是对于具有国家或地区足迹的大型ISP而言

我住在纽约,但我的手机显示为堪萨斯州,该地区的一些ISP显示为德克萨斯州。

使用您提到的Maxmind服务

您需要在index.php中更改以下行;(需要更改的行)

对此,;(新行)


没有直接关系,但他为什么要阻止他网站的特定状态?直接询问用户不是更好吗?我见过一些主要网站(如医疗保健)明确表示他们的服务只在某些州提供,然后他们会问用户他们住在哪里(并明确说明什么是/不适用)。@TimMedora问题可能是该客户不希望某些用户看到他们的网站,而您的解决方案允许他们撒谎进入。如果客户出于某种原因试图阻止他们,他可能不想让他们在这方面有漏洞。虽然如果他愿意让它不完美,他可能不会介意这个漏洞。所以我想我的评论是相关的。客户为什么需要这个块会影响到如何实现它。@FrankB-我理解,你的评论是相关的。进入网站通常可能会撒谎(例如年龄验证、欺骗IP、伪造电子邮件地址等),但如果你将责任推给用户,你可以免除大部分责任。具体来说,我的客户拥有一家特许经营企业,在某些细节上是祖传的。基本上,他不想给其他特许经营带来任何麻烦。意思我会向他们展示一个不同的网站/页面/等等。我知道这并不完美,但这是他想要的。用户1040259要求的是美国的州封锁,而不是国家。谢谢你的回答。正如马丁所说,是否有任何方法可以阻止一个特定的美国州?我把“美国州”理解为美国,为我的错误感到抱歉。如果有任何基于ip的状态列表,则有可能阻止。这是一个大+1。是的,这是可以做到的,但它将是非常不准确的。MaxMind是最精确的解决方案,它离值得用于这类事情还有很长的路要走。它几乎值得用于国家级封锁,但国家级封锁永远不会精确到值得去做。此外,即使您确实阻止了您想要阻止的人,基于IP的解决方案对于任何拥有最基本技术知识的人来说都是微不足道的。
$okc = array('Canada', 'United States'); //array of countries you want to let in

// Decide what to do with your country arrays
if (in_array($userco,$okc))
  echo " "; //allowed in 
else
 header( 'Location: http://www.google.com/' );//this is where to send countries not matched.
$okc = array('United States'); //array of countries you want to NOT let in

// Decide what to do with your country arrays
if (!in_array($userco,$okc))
  echo " "; //allowed in 
else
 header( 'Location: http://www.google.com/' );//this is where to send countries matched.