Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
§ Ìß]jÉ"ãóÀ—dZddlZddlmZmZmZmZmZmZddl Z ddl m Z m Z m Z m Z mZmZddlZddlZddlZddlmZddlmZmZmZmZmZmZmZmZGd„d¦«ZdS) zG ====================== GeoIP2 Database Reader ====================== éN)ÚAnyÚcastÚListÚOptionalÚTypeÚUnion)Ú MODE_AUTOÚ MODE_MMAPÚ MODE_MMAP_EXTÚ MODE_FILEÚ MODE_MEMORYÚMODE_FD)Ú IPAddress)ÚASNÚ AnonymousIPÚCityÚConnectionTypeÚCountryÚDomainÚ EnterpriseÚISPc óô—eZdZdZdefdedeeededdfd„Z dd„Z dd „Z d e de fd„Zd e defd„Zd e defd„Zd e defd„Zd e defd„Zd e defd„Zd e defd„Zd e defd„Zded e defd„Zdee e e ee efded e dee eeffd„Z!dee ee ee ee ee efded e deeeeeeffd„Z"de#j$j%fd„Z&d d„Z'dS)!ÚReadera GeoIP2 database Reader object. Instances of this class provide a reader for the GeoIP2 database format. IP addresses can be looked up using the ``country`` and ``city`` methods. The basic API for this class is the same for every database. First, you create a reader object, specifying a file name or file descriptor. You then call the method corresponding to the specific database, passing it the IP address you want to look up. If the request succeeds, the method call will return a model class for the method you called. This model in turn contains multiple record classes, each of which represents part of the data returned by the database. If the database does not contain the requested information, the attributes on the record class will have a ``None`` value. If the address is not in the database, an ``geoip2.errors.AddressNotFoundError`` exception will be thrown. If the database is corrupt or invalid, a ``maxminddb.InvalidDatabaseError`` will be thrown. NÚfileishÚlocalesÚmodeÚreturncó˜—|€dg}tj||¦«|_|j ¦«j|_||_dS)agCreate GeoIP2 Reader. :param fileish: The string path to the GeoIP2 database, or an existing file descriptor pointing to the database. Note that this latter usage is only valid when mode is MODE_FD. :param locales: This is list of locale codes. This argument will be passed on to record classes to use when their name properties are called. The default value is ['en']. The order of the locales is significant. When a record class has multiple names (country, city, etc.), its name property will return the name in the first locale that has one. Note that the only locale which is always present in the GeoIP2 data is "en". If you do not include this locale, the name property may end up returning None even when the record has an English name. Currently, the valid locale codes are: * de -- German * en -- English names may still include accented characters if that is the accepted spelling in English. In other words, English does not mean ASCII. * es -- Spanish * fr -- French * ja -- Japanese * pt-BR -- Brazilian Portuguese * ru -- Russian * zh-CN -- Simplified Chinese. :param mode: The mode to open the database with. Valid mode are: * MODE_MMAP_EXT - use the C extension with memory map. * MODE_MMAP - read from memory map. Pure Python. * MODE_FILE - read database as standard file. Pure Python. * MODE_MEMORY - load database into memory. Pure Python. * MODE_FD - the param passed via fileish is a file descriptor, not a path. This mode implies MODE_MEMORY. Pure Python. * MODE_AUTO - try MODE_MMAP_EXT, MODE_MMAP, MODE_FILE in that order. Default. NÚen)Ú maxminddbÚ open_databaseÚ _db_readerÚmetadataÚ database_typeÚ_db_typeÚ_locales)Úselfrrrs úF/opt/imunify360/venv/lib64/python3.11/site-packages/geoip2/database.pyÚ__init__zReader.__init__=sH€ðV ˆ?Ø�fˆGÝ#Ô1°'¸4Ñ@Ô@ˆŒØœ×0Ò0Ñ2Ô2Ô@ˆŒ ؈Œ ˆ ˆ ócó—|S©N©©r's r(Ú __enter__zReader.__enter__ns€Øˆ r*Úexc_typeÚ exc_valueÚ tracebackcó.—| ¦«dSr,)Úclose)r'r0r1r2s r(Ú__exit__zReader.__exit__qs€Ø � Š ‰ Œ ˆ ˆ ˆ r*Ú ip_addresscót—tt| tjjd|¦«¦«S)z®Get the Country object for the IP address. :param ip_address: IPv4 or IPv6 address as a string. :returns: :py:class:`geoip2.models.Country` object r)rrÚ _model_forÚgeoip2Úmodels©r'r6s r(ÚcountryzReader.countryts0€õÝ �T—_’_¥V¤]Ô%:¸IÀzÑRÔRñ ô ð r*cót—tt| tjjd|¦«¦«S)z¨Get the City object for the IP address. :param ip_address: IPv4 or IPv6 address as a string. :returns: :py:class:`geoip2.models.City` object r)rrr8r9r:r;s r(Úcityz Reader.city�s)€õ•D˜$Ÿ/š/­&¬-Ô*<¸fÀjÑQÔQÑRÔRÐRr*cót—tt| tjjd|¦«¦«S)z¶Get the AnonymousIP object for the IP address. :param ip_address: IPv4 or IPv6 address as a string. :returns: :py:class:`geoip2.models.AnonymousIP` object zGeoIP2-Anonymous-IP)rrÚ_flat_model_forr9r:r;s r(Ú anonymous_ipzReader.anonymous_ip‹s9€õÝ Ø × Ò Ý” Ô)Ð+@À*ñ ô ñ ô ð r*cót—tt| tjjd|¦«¦«S)z¦Get the ASN object for the IP address. :param ip_address: IPv4 or IPv6 address as a string. :returns: :py:class:`geoip2.models.ASN` object z GeoLite2-ASN)rrr@r9r:r;s r(Úasnz Reader.asnšs2€õÝ �×%Ò%¥f¤mÔ&7¸ÈÑTÔTñ ô ð r*cót—tt| tjjd|¦«¦«S)z¼Get the ConnectionType object for the IP address. :param ip_address: IPv4 or IPv6 address as a string. :returns: :py:class:`geoip2.models.ConnectionType` object zGeoIP2-Connection-Type)rrr@r9r:r;s r(Úconnection_typezReader.connection_type¦s9€õÝ Ø × Ò Ý” Ô,Ð.FÈ ñ ô ñ ô ð r*cót—tt| tjjd|¦«¦«S)z¬Get the Domain object for the IP address. :param ip_address: IPv4 or IPv6 address as a string. :returns: :py:class:`geoip2.models.Domain` object z GeoIP2-Domain)rrr@r9r:r;s r(Údomainz Reader.domainµs3€õÝ Ø × Ò ¥¤Ô!5°È Ñ SÔ Sñ ô ð r*cót—tt| tjjd|¦«¦«S)z´Get the Enterprise object for the IP address. :param ip_address: IPv4 or IPv6 address as a string. :returns: :py:class:`geoip2.models.Enterprise` object r)rrr8r9r:r;s r(Ú enterprisezReader.enterpriseÂs1€õÝ Ø �OŠO�FœMÔ4°lÀJÑ OÔ Oñ ô ð r*cót—tt| tjjd|¦«¦«S)z¦Get the ISP object for the IP address. :param ip_address: IPv4 or IPv6 address as a string. :returns: :py:class:`geoip2.models.ISP` object z GeoIP2-ISP)rrr@r9r:r;s r(Úispz Reader.ispÏs2€õÝ �×%Ò%¥f¤mÔ&7¸ÀzÑRÔRñ ô ð r*r$có—||jvr:tj¦«dd}td|›d|j›d�¦«‚|j |¦«\}}|€#t j d|›d�¦«‚||fS)NéézThe z method cannot be used with the z databasez The address z is not in the database.) r%ÚinspectÚstackÚ TypeErrorr"Úget_with_prefix_lenr9ÚerrorsÚAddressNotFoundError)r'r$r6ÚcallerÚrecordÚ prefix_lens r(Ú_getz Reader._getÛs¤€Ø  ¤ Ð -Ð -Ý”]‘_”_ QÔ'¨Ô*ˆFÝØW�vÐWÐW¸t¼}ÐWÐWÐWñôð ð $œ×BÒBÀ:ÑNÔNш�Ø ˆ>Ý”-×4Ò4ØC˜zÐCÐCÐCñôð ð�zÐ!Ð!r*Ú model_classÚtypescó˜—| ||¦«\}}| di¦«}||d<||d<|||j¬¦«S)NÚtraitsr6rW)r)rXÚ setdefaultr&)r'rYrZr6rVrWr\s r(r8zReader._model_forès\€ð $Ÿyšy¨° Ñ;Ô;ш�Ø×"Ò" 8¨RÑ0Ô0ˆØ)ˆˆ|ÑØ)ˆˆ|ÑØˆ{˜6¨4¬=Ð9Ñ9Ô9Ð9r*có^—| ||¦«\}}||d<||d<||¦«S)Nr6rW)rX)r'rYrZr6rVrWs r(r@zReader._flat_model_forôs@€ð $Ÿyšy¨° Ñ;Ô;ш�Ø)ˆˆ|ÑØ)ˆˆ|ÑØˆ{˜6Ñ"Ô"Ð"r*có4—|j ¦«S)zlThe metadata for the open database. :returns: :py:class:`maxminddb.reader.Metadata` object )r"r#r.s r(r#zReader.metadatas€ð Œ×'Ò'Ñ)Ô)Ð)r*có8—|j ¦«dS)zCloses the GeoIP2 database.N)r"r4r.s r(r4z Reader.closes€ð Œ×ÒÑÔÐÐÐr*)rr)r0Nr1Nr2NrN)rN)(Ú__name__Ú __module__Ú __qualname__Ú__doc__r ÚstrrrÚintr)r/r5rrr<rr>rrArrCrrErrGrrIrrKrrXrrr8r@r ÚreaderÚMetadatar#r4r-r*r(rr&s×€€€€€ððð.<@ÈYð/ ð/ Øð/ Ø%-¨d°3¬iÔ%8ð/ ØGJð/ à ð/ ð/ ð/ ð/ ðbðððððððð   )ð  °ð  ð  ð  ð  ðS˜yðS¨TðSðSðSðSð   yð  °[ð  ð  ð  ð  ð  ˜ið  ¨Cð  ð  ð  ð  ð  ¨)ð  ¸ð  ð  ð  ð  ð   ð  ¨vð  ð  ð  ð  ð   Yð  °:ð  ð  ð  ð  ð  ˜ið  ¨Cð  ð  ð  ð  ð " #ð "°9ð "Àð "ð "ð "ð "ð :à˜4 œ=¨$¨zÔ*:¸DÀ¼JÐFÔGð :ðð :ðð :ð ˆw˜  DÐ(Ô )ð :ð :ð :ð :ð #àØ �ŒL˜$˜sœ) T¨.Ô%9¸4À¼9ÀdÈ;ÔFWÐ Wô ð #ð ð #ð ð #ð ˆ~˜s K°¸Ð<Ô =ð #ð #ð #ð #ð*˜)Ô*Ô3ð*ð*ð*ð*ð ð ð ð ð ð r*r)rdrOÚtypingrrrrrrr r r r r r rr9Ú geoip2.modelsÚ geoip2.errorsÚ geoip2.typesrrrrrrrrrrr-r*r(úrms{ðððð €€€Ø9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9àÐÐÐððððððððððððððððð€ € € ØÐÐÐØÐÐÐØ"Ð"Ð"Ð"Ð"Ð"ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðe ðe ðe ðe ðe ñe ôe ðe ðe ðe r*