В настоящее время я использую PHP для вызова базы данных geoip для перенаправления пользователей в зависимости от состояния, в котором разрешен их IP-адрес.
Сейчас я переключаюсь на API JavaScript, который вызывает базу данных maxmind.
Проблема: я не знаю, как внести в белый список свой собственный IP-адрес.
Вот старый код PHP, который больше не используется:
include_once("/home/censor/geoip/geoipcity.inc");
$gi = geoip_open("/home/censor/geoip/GeoLiteCity.dat",GEOIP_STANDARD);
$record = geoip_record_by_addr($gi,$_SERVER["REMOTE_ADDR"]);
geoip_close($gi);
if((trim($record->region)=="WA") && ($_SERVER["REMOTE_ADDR"]!="11.111.111.111")) {
header("Location: http://www.google.com"); /* Redirect browser */
exit;
}
11.111.111.111 — это белый список IP-адресов.
Вот новый код JavaScript:
<script src="//js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js" type="text/javascript"></script>
<script type="text/javascript">
var redirect = (function () {
/* This implements the actual redirection. */
var redirectBrowser = function (site) {
var uri = "http://" + site + ".google.com/";
window.location = uri;
};
/* These are the country codes for the countries we have sites for.
* We will check to see if a visitor is coming from one of these countries.
* If they are, we redirect them to the country-specific site. If not, we
* redirect them to world.example.com */
var sites = {
"WA": true
};
var defaultSite = "www";
var onSuccess = function (geoipResponse) {
/* There's no guarantee that a successful response object
* has any particular property, so we need to code defensively. */
if (!geoipResponse.city.iso_code) {
redirectBrowser("www");
return;
}
/* ISO country codes are in upper case. */
var code = geoipResponse.city.iso_code.toLowerCase();
if ( sites[code] ) {
redirectBrowser(code);
}
else {
redirectBrowser("www");
}
};
/* We don't really care what the error is, we'll send them
* to the default site. */
var onError = function (error) {
redirectBrowser("www");
};
return function () {
geoip2.city( onSuccess, onError );
};
}());
redirect();
</script>
Может ли кто-нибудь предоставить мне способ внести белый список в IP-адрес с помощью нового кода? Я совсем не владею PHP или Javascript, поэтому помощь очень ценится.
Спасибо
Если этот код javascript встроен в файл PHP (как он звучит), вы можете заменить это:
if ( sites[code] ) {
с этим:
if (sites[code] && "<?php echo $_SERVER['REMOTE_ADDR']; ?>" !== "11.111.111.111") {
OP указал, что код JavaScript не в соответствии. В этом случае вы можете изменить код из этого:
if ( sites[code] ) {
к этому:
if (sites[code] && userIp !== "11.111.111.111") {
куда 11.111.111.111
это IP, который вы хотите добавить в белый список. Затем в ваш PHP включите этот скрипт:
<script>
var userIp = "<?php echo $_SERVER['REMOTE_ADDR']; ?>";
</script>
Других решений пока нет …