/****************************************************************************************************************/
/* Description: This snippet is provide simple way to help user on how to lookup IP address in bulk . */
/* suggestions for different city locations across the country. */
/* There are 1 steps in this snippet. For information, please visit IP2Location tutorial page at: */
/* https://www.ip2location.com/tutorials/lookup-ip-address-in-bulk-using-php-and-mysql-database */
/****************************************************************************************************************/
/* You can obtain free IP2Location LITE database for IPv6 at https://lite.ip2location.com */
<?php
// MYSQL configuration
$mysql_server = "mysql_server.com";
$mysql_user_name ="User ID";
$mysql_user_pass ="password";
// Connect to the database server
$link = mysqli_connect($mysql_server, $mysql_user_name, $mysql_user_pass) or die("Could not connect to MySQL database");
// Connect to the IP2Location database
mysqli_select_db($link,"ip2location") or die("Could not select database");
//Display for user input
echo "<html>";
echo "<head><title>IP Query in Bulk</title></head>";
echo "<body>
<span>Upload IP list for validation:</span><br/><br/>
<form action='' method='post' enctype='multipart/form-data'>
<input name='uploaded_file' type='file' value='' /><br>
<input type='submit' name='submit' value='Upload & Process' />
</form>
</body>";
echo "</html>";
//File submitted
if(isset($_POST['submit']))
{
//Check for file error
if($_FILES["uploaded_file"]["error"] > 0)
{
echo "Error :" .$_FILES["uploaded_file"]["error"]. "<br>";
}
else
{
echo "Input File Path :" , realpath(dirname(__FILE__)) ;
echo "<br>";
echo "File Name : " .$_FILES["uploaded_file"]["name"]. "<br>";
echo "Type : " .$_FILES["uploaded_file"]["type"]. "<br>";
echo "Size : " .($_FILES["uploaded_file"]["size"]/ 1024). "KB<br>";
}
//Name the output file
if(file_exists( "result.csv"))
{
$duplicatefile = "result.csv";
unlink($duplicatefile);
echo "Duplicate file deleted ! <br>";
}
//Check if uploaded file exists
if(file_exists( $_FILES["uploaded_file"]["name"]))
{
echo"Uploaded file already exist, Please make sure that both file's content are same. <br>" ;
}
else
{
move_uploaded_file($_FILES["uploaded_file"]["tmp_name"],
$_FILES["uploaded_file"]["name"]);
}
//Open file from its location
$file = $_FILES["uploaded_file"]["name"];
$ipfile = fopen($file,"r") or exit("unable to open file!");
//To split up the IP Address and fetch data from server
while(! feof($ipfile))
{
$iplist = stream_get_line($ipfile,100,",");
$ipno = Dot2LongIPv6($iplist);
$query = "SELECT * FROM ip2location_db11 WHERE ip_to >= $ipno order by ip_to limit 1 ";
if(!$query)
{
echo "Error";
}
$result = mysqli_query($link,$query) or die("IP2Location Query Failed");
while($row = mysqli_fetch_array($result,MYSQL_ASSOC))
{
$current = "\"$iplist\",\"$ipno\",\"{$row['country_code']}\",\"{$row['country_name']}\",\"{$row['region_name']}\",\"{$row['city_name']}\",\"{$row['latitude']}\",\"{$row['longitude']}\",\"{$row['zip_code']}\",\"{$row['time_zone']}\"" ;
//Output file to the path you want
$ans = "result.csv";
$fp = fopen($ans,"a") or die("couldn't open $ans for writing");
fwrite($fp,$current) or die ("couldn't write values to file!");
fclose($fp);
}
}
echo "Result File Path : ", realpath($ans);
echo "<br>";
// Free recordset and close database connection
mysqli_free_result($result);
mysqli_close($link);
}
// Function to convert IP address to IP number (IPv6)
function Dot2LongIPv6 ($IPaddr) {
$int = inet_pton($IPaddr);
$bits = 15;
$ipv6long = 0;
while($bits >= 0){
$bin = sprintf("%08b", (ord($int[$bits])));
if($ipv6long){
$ipv6long = $bin . $ipv6long;
}
else{
$ipv6long = $bin;
}
$bits--;
}
$ipv6long = gmp_strval(gmp_init($ipv6long, 2), 10);
return $ipv6long;
}
?>
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎