Как сделать выборку из такого файла?

12
K
На сайте с 13.11.2009
Offline
169
1088
"85.37.154.8","85.37.154.15","IT","Tuscany","Florence"
"85.37.154.16","85.37.154.31","IT","Tuscany","Prato"
"85.37.154.32","85.37.154.39","IT","Tuscany","Pisa"
"85.37.154.40","85.37.154.63","IT","Tuscany","Arezzo"
"85.37.154.64","85.37.154.71","IT","Lazio","Rome"
"85.37.154.72","85.37.154.79","IT","Tuscany","Arezzo"
"85.37.154.80","85.37.154.103","IT","Lazio","Rome"
"85.37.154.104","85.37.154.111","IT","Tuscany","Florence"
"85.37.154.112","85.37.154.119","IT","Tuscany","Arezzo"
"85.37.154.120","85.37.154.127","IT","Tuscany","Pisa"
"85.37.154.128","85.37.154.143","IT","Lazio","Rome"
"85.37.154.144","85.37.154.151","IT","Tuscany","Prato"
"85.37.154.152","85.37.154.175","IT","Tuscany","Florence"
"85.37.154.176","85.37.154.183","IT","Tuscany","Pisa"
"85.37.154.184","85.37.154.191","IT","Tuscany","Arezzo"
"85.37.154.192","85.37.154.207","IT","Tuscany","Florence"
"85.37.154.208","85.37.154.223","IT","Tuscany","Pisa"
"85.37.154.224","85.37.154.239","IT","Lazio","Rome"
"85.37.154.240","85.37.155.15","IT","Tuscany","Florence"

Предположим есть некий скрипт на PHP который определил айпи как 85.37.154.122 и он попадает в диапазон который я выделила...Как сделать так чтоб скрипт нашёл мой 85.37.154.122 в этой куче диапазонов и вывел что то вроде этого:

Ваша страна: IT

Ваш регион: Tuscany

Ваш город: Pisa

Перековыряла кучу готовых скриптов подходящего ничего не нашла.

B2
На сайте с 10.10.2011
Offline
27
#1

Для начала переведите с текстового формата в БД(MySql). Будет проще скрипт написать... да и работать будет быстрее.

K
На сайте с 13.11.2009
Offline
169
#2
Belka2007:
Для начала переведите с текстового формата в БД(MySql). Будет проще скрипт написать... да и работать будет быстрее.

я не знаю как, помучилась с готовыми скриптами для конвертации в базу, но они всё время ошибки давали, вот и плюнула я на базу....

Casan
На сайте с 10.10.2014
Offline
3
#3

Kristinka, на сколько широки диапазоны? Отличия только в последнем блоке айпишника?

PHP-скрипты, создание сайтов, разработка интернет-магазинов, парсеров и т.д. (/ru/forum/869424)
K
На сайте с 13.11.2009
Offline
169
#4
Casan:
Kristinka, на сколько широки диапазоны? Отличия только в последнем блоке айпишника?

ну там попадают и диапазоны с отличиями и в предпоследней цифре...

---------- Post added 26-10-2014 at 22:52 ----------

У меня есть такой скрипт:

$rem_ip = $_SERVER["REMOTE_ADDR"];
$ip = sprintf ("%u", ip2long ($rem_ip));
$file = "file.txt";
$fp = fopen ($file, "r");
while (!feof ($fp))
{
$line = fgets ($fp, 256);
$arr = explode (":", $line);
if ($arr[0] <= $ip AND $arr[1] >= $ip)

а к нему файл вот такой был, но там айпи диапазоны были в другом формате:

1042378752:1042379263
1045184512:1045185535
1045185536:1045186559
1045186560:1045187583
1045187584:1045188607
1045192704:1045193215

Там просто шла выборка и сравнение входит ли переведённый в айпилонг формат айпишник в диапазон или нет...А тут в файле все диапазоны в обычноа формате.На этом я и застряла.

J
На сайте с 20.02.2014
Offline
120
jkm
#5


$ip = '85.37.154.122';

foreach(file('file.txt') as $line)
{
list($start, $end, $country, $region, $city) = str_getcsv($line);
if (
strcmp($ip, $start) >= 0
&& strcmp($ip, $end) <= 0
){
echo "Ваша страна: $country<br>\n";
echo "Ваш регион: $region<br>\n";
echo "Ваш город: $city<br>\n";
break;
}
}
K
На сайте с 13.11.2009
Offline
169
#6

Спасибо,всё работает...А может у кого есть готовый код для того чтоб этот файл в базу загнать, а потом из него читать? Не помешало бы мне и с этим поэксперементировать.Файл CSV внутри такой:

"85.37.154.8","85.37.154.15","IT","Tuscany","Florence"
"85.37.154.16","85.37.154.31","IT","Tuscany","Prato"
"85.37.154.32","85.37.154.39","IT","Tuscany","Pisa"
"85.37.154.40","85.37.154.63","IT","Tuscany","Arezzo"
B2
На сайте с 10.10.2011
Offline
27
#7

Kristinka Через phpmyadmin.... Создаете таблицу (5 столбцов в соответствующем формате) - заходите в нее - Импорт - Формат: CSV - ОК

K
На сайте с 13.11.2009
Offline
169
#8
Belka2007:
Kristinka Через phpmyadmin.... Создаете таблицу (5 столбцов в соответствующем формате) - заходите в нее - Импорт - Формат: CSV - ОК

а можете написать запрос к базе на создание этих пяти столбцов? Там при создании столбца миллион параметров выбирать надо, это во-первых, а во вторых в файле CSV все параметры в кавычках и раздлённые запятой...Так просто взять и сделать импорт в базу не получится, надо как то чтоб данные очищались от всего этого и шли по своим столбцам...Боюсь я без помощи чьей либо это не осилю...а хотелось бы.

B2
На сайте с 10.10.2011
Offline
27
#9

Kristinka Щя сделаю. А что 3-я колонка обозначает? чтоб подписать...

K
На сайте с 13.11.2009
Offline
169
#10
Belka2007:
Kristinka Щя сделаю. А что 3-я колонка обозначает? чтоб подписать...

1. Srart ip

2. End ip

3. Coutry

4. Region

5. City

Кажется так, потому что в примере у меня IT , тоесть Италия

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий