✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

IP-paikannuksen toteuttaminen ilmaisen IP2Location LITE: n ja PHP: n avulla

21

Käy missä tahansa verkkosivustossa ja löydät todennäköisesti jonkinlaisen lokalisoinnin. Yleisin on sinulle paikallisten mainosten näyttäminen, vaikka verkkosivusto saattaa olla ulkomainen. Verkkokävijän IP-osoitteen avulla verkkosivuston ylläpitäjä voi kohdistaa asiaankuuluvia mainoksia, sisältöä tai muuttaa verkkosivuston kieltä maantieteellisen sijaintimaasi perusteella.

Tutkimme, kuinka tämä maantieteellinen sijainti voidaan ottaa käyttöön omalle verkkosivustollesi PHP: n avulla. Osa 1 käsittelee tietokannan ja taulukon luomista sekä tietojen tuomista. Osa 2 näyttää, kuinka PHP: tä käytetään tietokannan kyselyyn ja tulosten noutamiseen.

Osa 1: Paikannustietojen tuominen

Oletetaan, että verkkosivustollasi on Apache-verkkopalvelin, jossa PHP käyttää taustaa. Oletetaan, että käytät MySQL: ää, koska PHP toimii yleensä MySQL: n kanssa.

Ensimmäinen vaihe on ladata DB11 LITE -tietokantatiedosto osoitteesta https://lite.ip2location.com/database/ip-country-region-city-latitude-longitude-zipcode-timezone, joka on ilmainen kirjautumisen jälkeen.

Kun olet ladannut pakatun tiedoston, pura IP2LOCATION-LITE-DB11.CSV-datatiedosto kansioon nimeltä /root/ip2location_data(tämä on vain esimerkkikansion nimi).

Suorita seuraava luomalla MySQL: ssä tietokanta ja taulukko, johon DB11-tiedot tallennetaan.

CREATE DATABASE ip2location;
USE ip2location;
CREATE TABLE `ip2location_db11`(
    `ip_from` INT(10) UNSIGNED,
    `ip_to` INT(10) UNSIGNED,
    `country_code` CHAR(2),
    `country_name` VARCHAR(64),
    `region_name` VARCHAR(128),
    `city_name` VARCHAR(128),
    `latitude` DOUBLE,
    `longitude` DOUBLE,
    `zip_code` VARCHAR(30),
    `time_zone` VARCHAR(8),
    INDEX `idx_ip_to` (`ip_to`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

Suorita seuraavat tiedot MySQL: ssä tuodaksesi tiedot.

LOAD DATA LOCAL
    INFILE '/root/ip2location_data/IP2LOCATION-LITE-DB11.CSV'
INTO TABLE
    `ip2location_db11`
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY 'rn'
IGNORE 0 LINES;

Osa 2: Paikannustietojen kysely PHP-verkkosivultasi

Luomme nyt PHP-verkkosivun kyselemään tietokantaa ja antamaan sivukävijän maantieteelliset sijaintitiedot.

Luo kutsuttu sivu test.phpja liitä seuraava koodi siihen.

<?php
$dbname = 'ip2location'; // database name
$dbhost = 'localhost'; // database server name
$dbuser = 'root'; // database user login
$dbpass = '12345'; // database user password
?>
<!DOCTYPE html>
<head>
    <title>Test page</title>
</head>
<body>
<?php
try {
    $pdo = new PDO('mysql:host='. $dbhost. ';dbname='. $dbname. ';charset=utf8', $dbuser, $dbpass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     
    $ip = $_SERVER['REMOTE_ADDR']; // web visitor's IP address
     
    $st = $pdo->prepare('select * from `ip2location_db11` where inet_aton(:ip) <= ip_to limit 1');
    $st->bindParam(':ip', $ip, PDO::PARAM_STR);
    $st->execute();
     
    $data = $st->fetchAll(PDO::FETCH_ASSOC);
     
    if ($st->rowCount() > 0) {
     echo 'country_code: '. $data[0]['country_code']. "<br />n";
     echo 'country_name: '. $data[0]['country_name']. "<br />n";
     echo 'region_name: '. $data[0]['region_name']. "<br />n";
     echo 'city_name: '. $data[0]['city_name']. "<br />n";
     echo 'latitude: '. $data[0]['latitude']. "<br />n";
     echo 'longitude: '. $data[0]['longitude']. "<br />n";
     echo 'zip_code: '. $data[0]['zip_code']. "<br />n";
     echo 'time_zone: '. $data[0]['time_zone']. "<br />n";
    }
    else {
     echo 'No data found.<br />'. "n";
    }
}
catch(PDOException $e) {
    echo 'An error has occurred.<br />'. "n";
}
?>
</body>
</html>

Avaa nyt sivu selaimessasi. Sinun pitäisi nähdä kaikki oman IP-osoitteesi sijaintitiedot. Kun näet kaikki IP2Location DB11 LITE -tietojen palauttamat sijaintikentät, voit käyttää niitä monissa tilanteissa. Voit suodattaa liikennettä, estää tai ohjata käyttäjiä heidän sijaintiensa perusteella.

Jos sinulla on lisää kysymyksiä toteutuksesta, löydät lisää opetusohjelmia IP2Location Blogista.

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja