Saya ingin mendapatkan pengunjung negara melalui IP mereka ... Saat ini saya sedang menggunakan ini ( http://api.hostip.info/country.php?ip= ......)
Ini kode saya:
<?php
if (isset($_SERVER['HTTP_CLIENT_IP']))
{
$real_ip_adress = $_SERVER['HTTP_CLIENT_IP'];
}
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$real_ip_adress = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$real_ip_adress = $_SERVER['REMOTE_ADDR'];
}
$cip = $real_ip_adress;
$iptolocation = 'http://api.hostip.info/country.php?ip=' . $cip;
$creatorlocation = file_get_contents($iptolocation);
?>
Yah, itu berfungsi dengan baik, tetapi masalahnya, ini mengembalikan kode negara seperti AS atau CA, dan bukan seluruh nama negara seperti Amerika Serikat atau Kanada.
Jadi, apakah ada alternatif yang bagus untuk hostip.info menawarkan ini?
Saya tahu bahwa saya hanya dapat menulis beberapa kode yang pada akhirnya akan mengubah dua huruf ini menjadi nama seluruh negara, tetapi saya terlalu malas untuk menulis kode yang berisi semua negara ...
PS: Untuk beberapa alasan saya tidak ingin menggunakan file CSV siap pakai atau kode apa pun yang akan mengambil informasi ini untuk saya, sesuatu seperti ip2country kode siap pakai dan CSV.
sumber
$real_ip_address
selalu diabaikan.X-Forwarded-For
Ngomong-ngomong , ingatlah bahwa tajuk HTTP bisa dengan sangat mudah dipalsukan, dan ada proxy seperti www.hidemyass.comhttps://www.iplocate.io/api/lookup/8.8.8.8
- Penafian: Saya menjalankan layanan ini.Jawaban:
Coba fungsi PHP sederhana ini.
Cara Penggunaan:
Contoh1: Dapatkan detail alamat IP pengunjung
Contoh 2: Dapatkan detail alamat IP apa pun. [Mendukung IPV4 & IPV6]
sumber
file_get_contents()
. Periksa saja file error_log Anda. Penanganan masalah: lihat jawaban saya.Anda dapat menggunakan API sederhana dari http://www.geoplugin.net/
Fungsi yang digunakan
Keluaran
Itu membuat Anda memiliki begitu banyak opsi yang dapat Anda mainkan
Terima kasih
:)
sumber
Saya mencoba jawaban Chandra tetapi konfigurasi server saya tidak mengizinkan file_get_contents ()
PHP Warning: file_get_contents() URL file-access is disabled in the server configuration
Saya memodifikasi kode Chandra sehingga juga berfungsi untuk server seperti itu menggunakan cURL:
Semoga itu bisa membantu ;-)
sumber
Sebenarnya, Anda dapat menghubungi http://api.hostip.info/?ip=123.125.114.144 untuk mendapatkan informasi, yang disajikan dalam XML.
sumber
Gunakan MaxMind GeoIP (atau GeoIPLite jika Anda belum siap membayar).
sumber
Gunakan layanan berikut
1) http://api.hostip.info/get_html.php?ip=12.215.42.19
2)
3) http://ipinfodb.com/ip_location_api.php
sumber
Lihat php-ip-2-negara dari code.google. Database yang mereka sediakan diperbarui setiap hari, jadi tidak perlu untuk terhubung ke server luar untuk memeriksa apakah Anda meng-host server SQL Anda sendiri. Jadi dengan menggunakan kode Anda hanya perlu mengetik:
Kode Contoh (dari sumber)
Keluaran
sumber
Kita dapat menggunakan geobytes.com untuk mendapatkan lokasi menggunakan alamat IP pengguna
itu akan mengembalikan data seperti ini
Berfungsi untuk mendapatkan IP pengguna
sumber
Coba kode satu baris sederhana ini, Anda akan mendapatkan negara dan kota pengunjung dari alamat ip jarak jauh mereka.
sumber
Anda dapat menggunakan layanan web dari http://ip-api.com
dalam kode php Anda, lakukan sebagai berikut:
pertanyaan memiliki banyak informasi lain:
sumber
Ada versi flat-file terpelihara dengan baik dari database ip-> country yang dikelola oleh komunitas Perl di CPAN
Akses ke file-file itu tidak memerlukan server data, dan data itu sendiri kira-kira 515k
Higemaru telah menulis bungkus PHP untuk berbicara dengan data itu: php-ip-country-fast
sumber
Banyak cara berbeda untuk melakukannya ...
Solusi # 1:
Satu layanan pihak ketiga yang dapat Anda gunakan adalah http://ipinfodb.com . Mereka memberikan nama host, geolokasi dan informasi tambahan.
Daftarkan kunci API di sini: http://ipinfodb.com/register.php . Ini akan memungkinkan Anda untuk mengambil hasil dari server mereka, tanpa ini tidak akan berfungsi.
Salin dan lewati kode PHP berikut:
Kelemahan:
Mengutip dari situs web mereka:
Solusi # 2:
Fungsi ini akan mengembalikan nama negara menggunakan layanan http://www.netip.de/ .
Keluaran:
sumber
Layanan saya ipdata.co memberikan nama negara dalam 5 bahasa! Serta organisasi, mata uang, zona waktu, kode panggilan, bendera, data Operator Seluler, data proksi dan data status Tor Exit Node dari alamat IPv4 atau IPv6.
Ini juga sangat terukur dengan 10 wilayah di dunia yang masing-masing mampu menangani> 10.000 permintaan per detik!
Pilihannya meliputi; Bahasa Inggris (en), Jerman (de), Jepang (ja), Prancis (fr) dan Cina Sederhana (za-CH)
sumber
Tidak yakin apakah ini layanan baru tapi sekarang (2016) cara termudah di php adalah menggunakan layanan web php geoplugin: http://www.geoplugin.net/php.gp :
Penggunaan dasar:
Mereka juga menyediakan kelas siap pakai: http://www.geoplugin.com/_media/webservices/geoplugin.class.php.tgz?id=webservices%3Aphp&cache=cache
sumber
else
setelahelse
yang menyebabkan kesalahan. Apa yang Anda coba cegah? REMOTE_ADDR harus tersedia setiap saat?$_SERVER
: "Tidak ada jaminan bahwa setiap server web akan menyediakan semua ini; server dapat menghilangkan sebagian, atau menyediakan yang lain yang tidak tercantum di sini."Saya menggunakan
ipinfodb.com
api dan mendapatkan apa yang Anda cari.Benar-benar gratis, Anda hanya perlu mendaftar dengan mereka untuk mendapatkan kunci api Anda. Anda dapat memasukkan kelas php mereka dengan mengunduh dari situs web mereka atau Anda dapat menggunakan format url untuk mengambil informasi.
Inilah yang saya lakukan:
Saya menyertakan kelas php mereka dalam skrip saya dan menggunakan kode di bawah ini:
Itu dia.
sumber
Anda dapat menggunakan http://ipinfo.io/ untuk mendapatkan detail alamat ip. Mudah digunakan.
sumber
Ganti
127.0.0.1
dengan pengunjung IpAddress.Petunjuk pemasangan ada di sini , dan baca ini untuk mengetahui cara memperoleh Kota, Negara, Negara, Bujur, Latitude, dll ...
sumber
Satu liner dengan alamat IP ke API negara
Contoh:
https://ipapi.co/country_name/ - negara Anda
https://ipapi.co/8.8.8.8/country_name/ - negara untuk IP 8.8.8.8
sumber
Saya punya jawaban singkat yang saya gunakan dalam sebuah proyek. Dalam jawaban saya, saya menganggap Anda memiliki alamat IP pengunjung.
sumber
Saya tahu ini sudah tua, tetapi saya mencoba beberapa solusi lain di sini dan mereka tampaknya sudah usang atau hanya mengembalikan nol. Jadi ini yang saya lakukan.
Menggunakan
http://www.geoplugin.net/json.gp?ip=
yang tidak memerlukan segala jenis mendaftar atau membayar layanan.Dan jika Anda ingin informasi tambahan tentang itu, ini adalah pengembalian penuh Json:
sumber
Saya telah menulis sebuah kelas berdasarkan jawaban "Chandra Nakka". Mudah-mudahan ini dapat membantu orang-orang menyimpan informasi dari geoplugin ke sesi sehingga beban lebih cepat ketika mengingat informasi. Ini juga menyimpan nilai-nilai ke array pribadi sehingga mengingat kode yang sama adalah yang tercepat.
Menjawab pertanyaan 'op' dengan kelas ini dapat Anda hubungi
Dan properti lain yang tersedia adalah:
Kembali
sumber
The Pengguna Negara API memiliki apa yang Anda butuhkan. Berikut adalah contoh kode menggunakan file_get_contents () seperti yang Anda lakukan:
sumber
Anda bisa mendapatkan pengunjung negara dan kota menggunakan ipstack geo API. Anda harus mendapatkan ipstack API Anda sendiri dan kemudian menggunakan kode di bawah ini:
Sumber: Dapatkan pengunjung negara dan kota dalam PHP menggunakan ipstack API
sumber
Ini hanya catatan keamanan pada fungsionalitas
get_client_ip()
yang sebagian besar jawaban di sini telah dimasukkan ke dalam fungsi utamaget_geo_info_for_this_ip()
.Jangan terlalu mengandalkan data IP di header permintaan seperti
Client-IP
atauX-Forwarded-For
karena mereka dapat dipalsukan dengan sangat mudah, namun Anda harus mengandalkan sumber IP dari koneksi TCP yang sebenarnya dibuat antara server kami dan klien$_SERVER['REMOTE_ADDR']
karena dapat ' t akan dipalsukanTidak apa-apa untuk mendapatkan negara IP palsu itu tetapi perlu diingat bahwa menggunakan IP ini dalam model keamanan apa pun (misalnya: melarang IP yang mengirim permintaan yang sering) akan menghancurkan seluruh model keamanan. IMHO Saya lebih suka menggunakan IP klien yang sebenarnya bahkan jika itu adalah IP dari server proxy.
sumber
Mencoba
sumber
Anda dapat menggunakan layanan saya: https://SmartIP.io , yang memberikan nama negara lengkap dan nama kota dari alamat IP apa pun. Kami juga mengekspos zona waktu, mata uang, deteksi proxy, deteksi node TOR dan deteksi Crypto.
Anda hanya perlu mendaftar dan mendapatkan kunci API gratis yang memungkinkan 250.000 permintaan per bulan.
Menggunakan perpustakaan PHP resmi, panggilan API menjadi:
Periksa dokumentasi API untuk info lebih lanjut: https://smartip.io/docs
sumber
Pada 2019, MaxMind country DB dapat digunakan sebagai berikut:
Sumber: https://github.com/maxmind/MaxMind-DB-Reader-php
sumber
Apakah itu bisa diterima? PHP murni
ref: https://www.php.net/manual/en/function.geoip-country-code-by-name.php
sumber