Эта функция компактна, и ее можно использовать везде. Но!
Не забывайте об этом! В этом типе функции или блоки кода не гарантируют запись пользовательского реального IP-адреса, поскольку некоторые пользователи могут использовать прокси-сервер или другие безопасные шлюзы для невидимости или не могут отслеживать
Функция Php:
function GetIP()
{
if ( getenv("HTTP_CLIENT_IP") ) {
$ip = getenv("HTTP_CLIENT_IP");
} elseif ( getenv("HTTP_X_FORWARDED_FOR") ) {
$ip = getenv("HTTP_X_FORWARDED_FOR");
if ( strstr($ip, ',') ) {
$tmp = explode(',', $ip);
$ip = trim($tmp[0]);
}
} else {
$ip = getenv("REMOTE_ADDR");
}
return $ip;
}
Использование:
$IP = GetIP();
или непосредственно GetIP();
Есть два способа:
* Использование прокси-туннеля для создания канала для хоста из гостя: из гостевой версии выполните следующую команду: ssh -L 2000: localhost_ip: 2000 username @ hostip
исследовать ssh man, чтобы получить внутреннюю часть.
* Трудно настроить, но правильная настройка во время работы гостя: follow http://www.cse.iitd.ernet.in/~prathmesh/ random.html # Connecting_qemu_guest_to_real_network
Также убедитесь, что ядро настроено для ip-пересылки:
$ sudo sysctl -a | grep net.ipv4.ip_forward
net.ipv4.ip_forward = 1
Оно должно иметь значение 1, а не 0. Если необходимо, включите с помощью этих команд:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf