*** nouvelle mise a jour
-IP v6 address est supporté
* introduction:
à propos de GeoIP : https://fr.wikipedia.org/wiki/GeoIP
* Code:
Ce inclut permet de manipuler rapidement et facilement la base Geoip lite "la version Gratuite seulement", en format binaire. et récupérer les 'info suivant:
- le nom de pays
- nom de la cité
- code Region
- code pays
- les Coordonnées géographiques: latitude,longitude
- code postal
- code metro et Indicatif régional
- système autonome
- Fuseau horaire
* Fichiers requis:
tous les bases de données sur ce lien http://dev.maxmind.com/geoip/legacy/geolite/ son supporter :
GeoLite Country : http://geolite.maxmind.com/download/geo ... oIP.dat.gz
GeoLite Country IPv6 : http://geolite.maxmind.com/download/geo ... Pv6.dat.gz
GeoLite City. : http://geolite.maxmind.com/download/geo ... ity.dat.gz
GeoLite City IPv6 (Beta) : http://geolite.maxmind.com/download/geo ... yv6.dat.gz
GeoLite ASN. : http://download.maxmind.com/download/ge ... Num.dat.gz
GeoLite ASN IPv6. : http://download.maxmind.com/download/ge ... mv6.dat.gz
* Méthodes GeoIP:
GeoIP_OPen(GeoIP_Path.s,GeoIP_fCach_Memory.b=0,*GeoIP_datBuffer=0,GeoIP_datBufferSize.l=0)
ouvrir une base GeoIP
les réglages
GeoIP*_Path : Chemin complet vers la base si le parametre GeoIP_fCach_Memory est activé = 1 le GeoIP_Path est ignoré
GeoIP_fCach_Memory : Déterminer par "1 = oui" ou "0 = non" l'emplacement de la base:
1 : a partire du zone memoire situé dans "*GeoIP_datBuffer"
*GeoIP_datBuffer : L'adresse de la zone de mémoire de la base
GeoIP_datBufferSize = La taille en octets de la la base
Valeur de retour :
point ver "Structure GeoIP_Info"
GeoIP_Seek_Record_IPV6(*iGeoIP_Info.GeoIP_Info,IPAddressV6.s)
Chercher le ipV6 Défini
les réglages
iGeoIP_Info : point donné par l ouverture de la base *V6
IPAddress : IPV6 à chercher
Valeur de retour :
la position de l'info
GeoIP_seek_record(*iGeoIP_Info.GeoIP_Info,IPAddress.s)
Chercher le ip Défini
les réglages
iGeoIP_Info : point donné par l ouverture de la base
IPAddress : IP à chercher
Valeur de retour :
la position de l'info
GeoIP_extract_record(*iGeoIP_Info.GeoIP_Info, *iGeoIPRecord.GeoIPRecord, seek_record.
iGeoIP_Info point donné par :
GeoIP_OpenCountry() ou GeoIP_OpenCity()
iGeoIPRecord adresse vers "Structure GeoIPRecord" ** les infos seront écrit sur cette pstructure **
seek_record la position de les infos obtenu par _seek_record()
Valeur de retour : 1 == Ok
GeoIP_Get_ASMname(*iGeoIP_Info.GeoIP_Info,seek_record.l)
récupérer le code et le nom "Autonomous System"
iGeoIP_Info point donné par GeoIP_OpenASM()
seek_record la position de les infos obtenu par _seek_record()
Valeur de retour :
Description sur "Autonomous System"
GeoIP_Free(*iGeoIP_Info.GeoIP_Info)
liberer la memoire occupée par la recherche
iGeoIP_Info : point donné par l ouverture de la base
***Code : https://pastebin.com/KpEFxZAm
***test :
Code : Tout sélectionner
IncludeFile "GeoIP.PBI"
Define *GeoIP = GeoIP_OPen("GeoLiteCityv6.dat")
Define seek_record = GeoIP_Seek_Record_IPV6(*GeoIP,"2001:4860:4860::8844")
Define iGeoIPRecord.GeoIPRecord
GeoIP_Extract_Record(*GeoIP, @iGeoIPRecord, seek_record)
Debug iGeoIPRecord\country_name
Debug iGeoIPRecord\city
*Clarification
Ce code je l'ai fait il y a presque 1 ans pour l'utilisation personal dans mes projets et j'ai voulu partager avec vous !,
libre a vous de l'utiliser sans aucune garantie ni risques de ma part .
amusez vous ;peace