Как сохранить IP подключения из cURL POST - PullRequest
2 голосов
/ 17 апреля 2020

У меня есть стек LAMP, в котором я установил следующий код в файле php:

if (isset($_POST['name'], $_POST['age'])) {
        $db = new Mysqli("localhost", "test", "123", "postdata");
        $name = $db->real_escape_string($_POST['name']);
        $age = (int)$_POST['age'];
        $query = "INSERT INTO data SET mydata='$name, $age, $ip'";
        $db->query($query);
}

, когда я сверну данные с помощью cmd, например, "curl -d name = peter -d age = 32 localhost / isproject / test. php ", я также хотел бы сохранить IP-адрес и передать его в базу данных MySQL, чтобы убедиться, что запись с именем и возрастом также идет с IP-адрес передачи.

Я проверил наличие нескольких сообщений и использовал следующий код:

if(!empty($_SERVER["HTTP_CLIENT_IP"])){
        $ip = $_SERVER["HTTP_CLIENT_IP"];
}else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){
        $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}else{
        $ip = $_SERVER["REMOTE_ADDR"];
}

Однако это приводит к вводу следующего изображения:

The first row consists of colons and a 1 in the end instead of a valid IP

Это из-за неправильного использования кода или просто из-за того, что я свернулся с устройства, на котором размещен сервер? Независимо от того, я новичок в этой области, и я хотел бы получить обратную связь!

1 Ответ

1 голос
/ 17 апреля 2020

Это действительно от использования curl с вашего собственного устройства. ::1 представляет 127.0.0.1 в формате IPv6.

...