Szerző Téma: IpToCountry  (Megtekintve 4210 alkalommal)

IpToCountry
« Válasz #15 Dátum: 2011. március 20. - 00:44:02 »
0 Show voters
Idézetet írta: SoAP date=1300575372\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6966\" data-ipsquote-contentclass=\"forums_Topic
Nem tudom miért nem jött be :-\\
 
És azt meg hogy csinálod elárulod? Tudod szép kéken van kiírva HIVATALOS LINK és rá kell vinni az egér mutatót és egy bal egérgombot egyszer megnyomni.
Mostmár bejön de azért kicsit visszábvehetnél... -.-\'\'\'\' Nem ismerlek, s nem is akarlak..... a szép kéken kivan írva szövegedbõl már tudom minden paramétered -.-\'\'\'
 
[/quote]
Off:
Elég negatív hozzá szólásokhoz hasonlóan negatív válasz dukál de most ezt kihagyom legyen egy jó napod.

Nem elérhető Buba

  • 540
    • Profil megtekintése
IpToCountry
« Válasz #16 Dátum: 2011. március 20. - 11:52:14 »
0 Show voters
zsoleszka ne kezelj már le mindenkit... nem vagyunk hülyék, ha rendesen írod is értjük

IpToCountry
« Válasz #17 Dátum: 2011. március 20. - 12:33:08 »
0 Show voters
Idézetet írta: Buba date=1300618334\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6966\" data-ipsquote-contentclass=\"forums_Topic
zsoleszka ne kezelj már le mindenkit... nem vagyunk hülyék, ha rendesen írod is értjük
 
Off:Szerintem ez enyhe túlzás hogy lekezelek mindenkit, aljas rágalom és tuti biztos vagy benne hogy értik?
Sajnos én nem vagyok egy türelmes ember ha valaki egy linkre kattintva nem tud megjeleníteni egy weboldalt holott a link  jó mert leteszteltem és nem csak én, és az elsõ próbálkozás ahogy nem sikerült már ír is a fórumra hogy \"ez be se jön\" nem hogy megpróbálná többet, akkor kicsit kiakadok, hát ezért nem kérek elnézést már bocs.
És egy szóval se írtam \"hülyék\" máskor gondold át miket írsz kösz.
És a script-rõl kellene írni ebben a topicban és nem off dolgokról. Itt a pont.

IpToCountry
« Válasz #18 Dátum: 2013. március 17. - 12:07:32 »
0 Show voters
Update 2013.03.16

Download
http://www.solidfiles.com/d/9f8a5ce0fb/



/* ¤¤¤¤¤¤¤ [ IpToCountry by Zsolesszka ] ¤¤¤¤¤¤¤¤¤ Date 2011.03.19
Update [2013.03.16]
How to update countrydatabase.db?
Go to http://software77.net/geo-ip/ and download \"IPV4 csv (gz)\"  (IpToCountry.csv file),
extract and copy ../myserver/scriptfiles folder,
and run samp_server.exe and wait 7-8 minute.
¤¤¤¤¤¤¤¤¤¤ [ SQLite version ] ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤*/
#include <a_samp>
#include <sscanf2>
 
#define Database_N \"countrydatabase.db\"
stock const
IpToCountry_csv[] = \"IpToCountry.csv\";
new
DB:database;
public
OnFilterScriptInit()
{
SetTimer(\"IPTC_start\", 1000, false);
print(\"°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\");
print(\"   IpToCountry_db by Zsolesszka\");
print(\"°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\");
return 1;
}
forward IPTC_start(); public
IPTC_start()
{
UpDate_DataBase();
database = db_open(Database_N);
//   Teszt();
}
public
OnFilterScriptExit()
{
db_close(database);
return 1;
}
public
OnPlayerConnect(playerid)
{
new
    MaxPlayers = GetMaxPlayers(),
    string[144],
    IP[16];
GetPlayerIp(playerid, IP, sizeof IP);
format(string, sizeof string, \"*** %s has joined the server | Country: %s |\", pName(playerid), GetCountry(IP));
for(new p; p < MaxPlayers; p++)
{
    if(!IsPlayerConnected(p) || IsPlayerNPC(p) || p == playerid) continue;
    SendClientMessage(p, 0x33AA33AA, string);
}
format(string, sizeof string, \" %s IP Adress: %s |\", string, IP);
SendClientMessage(playerid, 0x33AA33AA, string);
return 1;
}
// ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ [ Teszt ] ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
stock
Teszt()
{
new
randomip[16];
for(new i = 0; i < 20; i++)
{
format(randomip, sizeof randomip, \"%d.%d.%d.%d\", random(256), random(256), random(256), random(256));
new
   starttime = GetTickCount();
printf(\"Time test | random ip: %s | COUNTRY: %s --> Time: %dms\", randomip, GetCountry(randomip), GetTickCount() - starttime);
}
}
// ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ [ sql version ] ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
GetCountry(Ip[])
{
new
Split_Ip[4 char],
DBResult:result,
query[128];
if(database)
{
if(!strcmp(\"127.0.0.1\", Ip, true))
{
   query = \"Localhost\";
} else {
   Split_Ip[0] = IptoInt(Ip);
   format(query, sizeof query,
      \"SELECT `Country` FROM `countrydetected` WHERE ((16777216*%d) + (65536*%d) + (256*%d) + %d) BETWEEN `Ip_From` AND `Ip_to`\",
      Split_Ip{0}, Split_Ip{1}, Split_Ip{2}, Split_Ip{3});
   // printf(\"strlen %d\", strlen(query));
   result = db_query(database, query);
   if(!db_get_field_assoc(result, \"Country\", query, sizeof query))
   {
      query = \"Unknown\";
   }
   db_free_result(result);
}
} else format(query, sizeof query, \"Failed. Not Open \\\"%s\\\" Read IpToCountry.pwn\" , Database_N);
return query;
}
// ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ [ IptoInt ] ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
IptoInt(const Ip[])
{
new
Byte[1],
Count = 1,
Pos = 0;
Byte{0} = strval(Ip[0]);
while(Ip[++Pos]) { if(Ip[Pos] == \'.\') Byte{Count++} = strval(Ip[Pos + 1]); }
return Byte[0];
}
// ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ [ Return PlayerName ] ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
pName(playerid)
{
    new
name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof name);
return name;
}
 
 
 
// ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ [ Update script database ] ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
UpDate_DataBase()
{
if(fexist(IpToCountry_csv))
{
new
   starttime = GetTickCount();
print(\"Update \"Database_N\" file, please wait......\");
if(fexist(Database_N)) fremove(Database_N);
new
   count = 1,
   str[256],
   File:IPC = fopen(IpToCountry_csv),
   DB:data_base = db_open(Database_N);
if(IPC && data_base)
{
   new
      query[512],
      Ip_From[24],
      Ip_To[24],
      TEXT[64],
      Assigned[24],
      Ctry[24],
      Cntry[24],
      Country[128];
   db_query(data_base, \"CREATE TABLE IF NOT EXISTS `countrydetected` (ID INTEGER PRIMARY KEY, Ip_From NUMERIC, Ip_To NUMERIC, Registry TEXT, Assigned NUMERIC, Ctry TEXT, Cntry TEXT, Country TEXT);\");
   while(fread(IPC, str))
   {
      if(str[0] == \'#\') continue;
      else
      {
         Replace_Double_Prime(str);
         if(sscanf(str, \"p<,>s[24]s[24]s[63]s[24]s[24]s[24]s[128]\", Ip_From, Ip_To, TEXT, Assigned, Ctry, Cntry, Country)) continue;
         else
         {
            format(query, sizeof query,
               \"INSERT INTO `countrydetected` (ID,Ip_From,Ip_To,Registry,Assigned,Ctry,Cntry,Country) VALUES (%d,%s,%s,%s,%s,%s,%s,%s);\",
                  count, Ip_From, Ip_To, TEXT, Assigned, Ctry, Cntry, Country);
            db_query(data_base, query);
         }
      }
      count++;
   }
   fclose(IPC);
   db_close(data_base);
}
fremove(IpToCountry_csv); // Delete IpToCountry.csv file
printf(\"\"Database_N\" file update done time: %f m, and deleted %s file. \\n\", float((((GetTickCount() - starttime) / 1000) / 60)), IpToCountry_csv);
}
}
// ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ [ Remove_Double_Prime ] ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
stock
Remove_Double_Prime(str[])
{
new
i = 0,
pos = 0,
lenght = strlen(str);
while(pos < lenght)
{
if(str[pos] != \'\"\')
{
   str = str[pos];
   i++;
}
pos++;
}
str = EOS;
}
// ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ [ Replace_Double_Prime ] ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
Replace_Double_Prime(str[], ch = \'\\\'\')
{
new
i = 0;
while(str)
{
if(str == \'\"\') str = ch;
i++;
}
}

 
 
Az adatbázis létrehozásához illetve frissítéséhez le kell tölteni a \"IPV4 csv (gz)\"  (IpToCountry.csv file) fájlt a
http://software77.net/geo-ip/
oldalról.
A saját szerver /scriptfiles mappájába másolni elindítani a samp szervert (persze a server.cfg filterscripts sorába be kell írni a szkript nevét :D) és várni míg elkészíti az adatbázist \"countrydatabase.db\" néven. (ha elkészült akkor törli a scriptfiles mappából a \"IpToCountry.csv\" fájlt. Akkor készíti/frissíti az adatbázist ha ott a \"IpToCountry.csv\" fájl.)
Ez egy kicsit idõigényes feladat, mivel több mint százezer sort kell létrehozni. A tesztek alatt amit készítettem 125475 soros lett.
« Utoljára szerkesztve: 2013. március 18. - 09:00:01 írta ɐʞzssǝlosz »

Nem elérhető Beckham

  • 1693
  • Noresz
  • Discord: Noresz#4265
    • Profil megtekintése
    • OctansV Alt:v szervere
IpToCountry
« Válasz #19 Dátum: 2013. március 21. - 17:23:40 »
0 Show voters
:thumbsup: jó lett.

Nem elérhető scripter01

  • 1035
  • Ex Moderálisan Globális
    • Profil megtekintése
IpToCountry
« Válasz #20 Dátum: 2013. március 23. - 06:26:47 »
0 Show voters
Szép Grat!

Nem elérhető Cappsy

  • Adminisztrátor
  • 2754
    • Profil megtekintése
IpToCountry
« Válasz #21 Dátum: 2013. március 24. - 21:59:23 »
0 Show voters
OFF:
A 2 okoskodónak üzenem , hogy ha nemtudod mi ez akkor ne írj negatív hozzászólásokat :)
ON:
Szép :) Én GeoIp-vel csináltam még anno kezdõ koromban egy ehhez hasonlót :p

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal