הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   איך אני בודק מאיזה ארץ המשתמש? (https://hosts.co.il/forums/showthread.php?t=40245)

AmosPeled.com 21-02-07 15:10

איך אני בודק מאיזה ארץ המשתמש?
 
מישהו יודע מה המשתנה ?

תודה :)

RS324 21-02-07 15:38

אין משתנה , יש מסד של טווחים של איפים...תריץ חיפוש

Ori The Man 21-02-07 15:38

אי אפשר לדעת מאיזה ארץ
לכל ארץ יש טווח ip משלה
ולפי ה ip אפשר לבדוק

Meir 21-02-07 15:38

קיים מסד נתונים מוכן שיש בו את כל הטווחים של הכתובת ip עבור כל מדינה.
אבל אם יש לך שרת פרטי או שבעל השרת מוכן להתקין לך הרחבה של php תשתמש בזה
http://il2.php.net/manual/en/ref.geoip.php

RS324 21-02-07 15:41

ציטוט:

נכתב במקור על ידי elbaz.maor (פרסם 426394)
קיים מסד נתונים מוכן שיש בו את כל הטווחים של הכתובת ip עבור כל מדינה.
אבל אם יש לך שרת פרטי או שבעל השרת מוכן להתקין לך הרחבה של php תשתמש בזה
http://il2.php.net/manual/en/ref.geoip.php

ממש לא חייב את ההרחבה הזאת,
יש טווחים של ארצות בקובץ CSV , פשוט להכניס למסד
ולהריץ שאילתה
עניין של 10 דקות

Eli-Hai 21-02-07 16:13

פשוט להשיג את הטווחים, ולעשות ב-RegEx בדיקה.
אפילו לי זה די פשוט...

AmosPeled.com 21-02-07 17:08

ציטוט:

נכתב במקור על ידי RS324 (פרסם 426399)
ממש לא חייב את ההרחבה הזאת,
יש טווחים של ארצות בקובץ CSV , פשוט להכניס למסד
ולהריץ שאילתה
עניין של 10 דקות

אפשר את הקובץ וקצת הסבר ?

RS324 21-02-07 17:15

ציטוט:

נכתב במקור על ידי Eli-Hai (פרסם 426409)
פשוט להשיג את הטווחים, ולעשות ב-RegEx בדיקה.
אפילו לי זה די פשוט...

מה הקשר REGEX לפה ??

ציטוט:

נכתב במקור על ידי AmosPeled.com (פרסם 426449)
אפשר את הקובץ וקצת הסבר ?

קצת חיפוש בגוגל אף פעם לא מזיק.
http://www.ip2country.com/

Ori The Man 21-02-07 17:25

חיפשתי בישבילו ולא הבאתי לו תאתרים האלה
כי אני מאמין שהוא לא יקנה..

RS324 21-02-07 17:30

ציטוט:

נכתב במקור על ידי Ori The Man (פרסם 426465)
חיפשתי בישבילו ולא הבאתי לו תאתרים האלה
כי אני מאמין שהוא לא יקנה..

למה לקנות כשאפשר בחינם ?

http://ip-to-country.webhosting.info/node/view/6

AmosPeled.com 21-02-07 17:52

איך אני משתמש בקובץ הזה ?

AmosPeled.com 21-02-07 18:44

תודה רבה הסתדרתי!!

Eli-Hai 21-02-07 19:17

ציטוט:

נכתב במקור על ידי RS324 (פרסם 426456)
מה הקשר REGEX לפה ??



קצת חיפוש בגוגל אף פעם לא מזיק.
http://www.ip2country.com/

הקשר, שאני הייתי בודק את הטווח עם REGEX. למשל, אם למדינה X זה מתחיל 1.1. אז הייתי מנסה לבדוק עם REGEX, אל תקפוץ..

RS324 21-02-07 19:19

ציטוט:

נכתב במקור על ידי Eli-Hai (פרסם 426562)
הקשר, שאני הייתי בודק את הטווח עם REGEX. למשל, אם למדינה X זה מתחיל 1.1. אז הייתי מנסה לבדוק עם REGEX, אל תקפוץ..

אם אי פעם טרחת להסתכל בקובץ של האיפים , כולם כתובים כך 1055924224 בקוד דצימלי
ככה ש PREG מיותר לחלוטין....
אז כן...מה הקשר..

Eli-Hai 22-02-07 20:28

ציטוט:

נכתב במקור על ידי RS324 (פרסם 426565)
אם אי פעם טרחת להסתכל בקובץ של האיפים , כולם כתובים כך 1055924224 בקוד דצימלי
ככה ש PREG מיותר לחלוטין....
אז כן...מה הקשר..

לא עבדתי עם זה אף פעם, ולכן הנחתי שהטווחים נראים אחרת.

בניה 23-02-07 00:37

הינה קוד להכנסת המידע למסד נתונים מסוג MYSQL.
רק שלוקח לסקריפט בערך דקה לרוץ.
מבנה הטבלה:
קוד:

CREATE TABLE `ip2country` (
  `IP_FROM` double NOT NULL default '0',
  `IP_TO` double NOT NULL default '0',
  `COUNTRY_CODE2` char(2) NOT NULL default '',
  `COUNTRY_CODE3` char(3) NOT NULL default '',
  `COUNTRY_NAME` varchar(50) NOT NULL default '',
  UNIQUE KEY `IP_TO_2` (`IP_TO`),
  UNIQUE KEY `IP_FROM_2` (`IP_FROM`),
  KEY `IP_FROM` (`IP_FROM`),
  KEY `IP_TO` (`IP_TO`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

הקוד שמכניס:

PHP קוד:

<?php
error_reporting
(1);
$start time();
$fp fopen("./ip-to-country.csv" ,"r");
$c=0;
mysql_connect('localhost',"root");
mysql_select_db("ip2country");
while(!
feof($fp))
{
    
$line = array();
                  
//From     //To
    
preg_match('/"([0-9]*)","([0-9]*)","([a-z]{2})","([a-z]{3})","([a-z ]*)"/i',fgets($fp),$line);
    if(
$line[1]=='0'||$line[1]=='')
        continue;
    
mysql_query("INSERT INTO `ip2country`
    (`IP_FROM`, `IP_TO`, `COUNTRY_CODE2`, `COUNTRY_CODE3`, `COUNTRY_NAME`) VALUES
    ("
.$line[1].", ".$line[2].", '".$line[3]."', '".$line[4]."', '".$line[5]."')") or die(mysql_error());
    
$c++;
}
mysql_close();
fclose($fp);
echo 
"lines: " $c ". time took: " . (time() - $start);
?>



כל הזמנים הם GMT +2. הזמן כעת הוא 23:57.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ