基于IP的重定向不再起作用,可能是基于主机名的东西?

时间:2016-11-17 19:02:09

标签: php redirect

我有一个问题;我一直在使用下面的两个例子,所以它总是指向我正确的脚本。例如Sabnzbd和Sonarr。

然而,出乎意料的是,我的家庭ISP决定每天更换我的IP(差不多)。此外,不仅是IP的最后一个范围,还有前面的数字。这使我的脚本有点无意义,现在我想知道是否有办法使用主机名。

我只使用这个"脚本"在两个重要的位置。其余的并不重要。家庭提供者有" caiway.nl"在主机名和其他位置,它有" ziggo.nl"在主机名的末尾。

我使用多个脚本将我重定向到正确的位置,但下面的示例是示例。也许有人一劳永逸地为这个问题有一个想法或解决方法。

<?php
// Sabnzbd
$visitor = $_SERVER['REMOTE_ADDR'];
if (preg_match("/62.45.*.*/",$visitor)) {
      header('Location: http://192.168.1.55:9900');
} else {
      header('Location: http://place.dnsforwarder.eu:9900/');
};
?>

<?php
// Sonarr
$visitor = $_SERVER['REMOTE_ADDR'];
if (preg_match("/62.45.*.*/",$visitor)) {
      header('Location: http://192.168.1.55:3300');
} else {
      header('Location: http://place.dnsforwarder.eu:3300/');
};
?>

因此,我不想使用基于IP的内容,而是希望使用主机名,因此在任何一天给出的IP并不重要。

我已经考虑过切换它,但是在另一个地方我的IP也经常更换。叹息。

我希望有人理解我的意思,并且可以提出某种可行的解决方案和/或使用以上的例子....谢谢。

[编辑/更新/更多信息]

显然它不是很清楚。我在个人首发(网页)页面上使用上述代码。所以我可以点击这两个链接,它将重定向到我的本地IP和端口号,否则它将动态dns服务(fear.org)正确地重定向我。在这种情况下,它是&#34; place.dnsforwarder.eu&#34;作为一个dns前锋(显然这个名字)。

然而,正如所解释的,两个ISP(不同的)都在每天更改我的IP号码。所以代码不再适用(至少在1个位置)。现在我不想进行某种IP检查,而是想知道是否可以使用基于主机名的东西(基于我的2 ISP&#39; s; ziggo.nl或caiway.nl)。这样,如果他们每分钟改变我的IP都没关系,我总会被转发到正确的地方。

旁注;我可以创建两个不同的起始页面,每个位置一个,但是这带来了大量的工作,更重要的是;它不会正常工作,因为浏览器现在同步,这意味着我每次去2个地点之一时都必须改变我的起始页面(1或2)......

1 个答案:

答案 0 :(得分:1)

我相信你正在寻找以下内容:

// Sabnzbd
$visitor = $_SERVER['REMOTE_ADDR'];
$hostname = gethostbyaddr($visitor);
if (stristr($hostname, 'caiway.nl')) {
      header('Location: http://192.168.1.55:9900');
} else {
      header('Location: http://place.dnsforwarder.eu:9900/');
}

// Sonarr
$visitor = $_SERVER['REMOTE_ADDR'];
$hostname = gethostbyaddr($visitor);
if (stristr($hostname, 'ziggo.nl')) {
      header('Location: http://192.168.1.55:3300');
} else {
      header('Location: http://place.dnsforwarder.eu:3300/');
}

gethostbyaddr会将IP地址解析为主机名。