maxmind / GeoIP2-php

PHP API for GeoIP2 webservice client and database reader
https://maxmind.github.io/GeoIP2-php/
Apache License 2.0
2.33k stars 276 forks source link

How do you query the continent? #50

Closed lordspace closed 9 years ago

lordspace commented 9 years ago

Hi,

How do I query the continent?

I've tried with

<?php

// https://github.com/maxmind/geoip-api-php
// https://github.com/maxmind/GeoIP2-php
require __DIR__ . '/geoip2.phar';

use GeoIp2\Database\Reader;

$ipAddress = '1.2.3.4';

$reader = new Reader('GeoLite2-Country.mmdb');
$record = $reader->country($ipAddress);

// print($record->continent->isoCode . "\n"); // ???
print_r($record->country->isoCode . "\n"); // works for the country

print_r( $record );

The result object contains it. It would be stupid for me to var_export the variable and search for it in the string.

US
GeoIp2\Model\Country Object
(
    [continent:protected] => GeoIp2\Record\Continent Object
        (
            [validAttributes:protected] => Array
                (
                    [0] => code
                    [1] => geonameId
                    [2] => names
                )

            [locales:GeoIp2\Record\AbstractPlaceRecord:private] => Array
                (
                    [0] => en
                )

            [record:GeoIp2\Record\AbstractRecord:private] => Array
                (
                    [code] => NA
                    [geoname_id] => 6255149
                    [names] => Array
                        (
                            [de] => Nordamerika
                            [en] => North America
                            [es] => Norteamérica
                            [fr] => Amérique du Nord
                            [ja] => 北アメリカ
                            [pt-BR] => América do Norte
                            [ru] => Северная Америка
                            [zh-CN] => 北美洲
                        )

                )

        )

    [country:protected] => GeoIp2\Record\Country Object
        (
            [validAttributes:protected] => Array
                (
                    [0] => confidence
                    [1] => geonameId
                    [2] => isoCode
                    [3] => names
                )

            [locales:GeoIp2\Record\AbstractPlaceRecord:private] => Array
                (
                    [0] => en
                )

            [record:GeoIp2\Record\AbstractRecord:private] => Array
                (
                    [geoname_id] => 6252001
                    [iso_code] => US
                    [names] => Array
                        (
                            [de] => USA
                            [en] => United States
                            [es] => Estados Unidos
                            [fr] => États-Unis
                            [ja] => アメリカ合衆国
                            [pt-BR] => Estados Unidos
                            [ru] => Сша
                            [zh-CN] => 美国
                        )

                )

        )

    [locales:protected] => Array
        (
            [0] => en
        )

    [maxmind:protected] => GeoIp2\Record\MaxMind Object
        (
            [validAttributes:protected] => Array
                (
                    [0] => queriesRemaining
                )

            [record:GeoIp2\Record\AbstractRecord:private] => Array
                (
                )

        )

    [registeredCountry:protected] => GeoIp2\Record\Country Object
        (
            [validAttributes:protected] => Array
                (
                    [0] => confidence
                    [1] => geonameId
                    [2] => isoCode
                    [3] => names
                )

            [locales:GeoIp2\Record\AbstractPlaceRecord:private] => Array
                (
                    [0] => en
                )

            [record:GeoIp2\Record\AbstractRecord:private] => Array
                (
                    [geoname_id] => 6252001
                    [iso_code] => US
                    [names] => Array
                        (
                            [de] => USA
                            [en] => United States
                            [es] => Estados Unidos
                            [fr] => États-Unis
                            [ja] => アメリカ合衆国
                            [pt-BR] => Estados Unidos
                            [ru] => Сша
                            [zh-CN] => 美国
                        )

                )

        )

    [representedCountry:protected] => GeoIp2\Record\RepresentedCountry Object
        (
            [validAttributes:protected] => Array
                (
                    [0] => confidence
                    [1] => geonameId
                    [2] => isoCode
                    [3] => names
                    [4] => type
                )

            [locales:GeoIp2\Record\AbstractPlaceRecord:private] => Array
                (
                    [0] => en
                )

            [record:GeoIp2\Record\AbstractRecord:private] => Array
                (
                )

        )

    [traits:protected] => GeoIp2\Record\Traits Object
        (
            [validAttributes:protected] => Array
                (
                    [0] => autonomousSystemNumber
                    [1] => autonomousSystemOrganization
                    [2] => domain
                    [3] => isAnonymousProxy
                    [4] => isSatelliteProvider
                    [5] => isp
                    [6] => ipAddress
                    [7] => organization
                    [8] => userType
                )

            [record:GeoIp2\Record\AbstractRecord:private] => Array
                (
                    [ip_address] => 1.2.3.4
                )

        )

    [raw:protected] => Array
        (
            [continent] => Array
                (
                    [code] => NA
                    [geoname_id] => 6255149
                    [names] => Array
                        (
                            [de] => Nordamerika
                            [en] => North America
                            [es] => Norteamérica
                            [fr] => Amérique du Nord
                            [ja] => 北アメリカ
                            [pt-BR] => América do Norte
                            [ru] => Северная Америка
                            [zh-CN] => 北美洲
                        )

                )

            [country] => Array
                (
                    [geoname_id] => 6252001
                    [iso_code] => US
                    [names] => Array
                        (
                            [de] => USA
                            [en] => United States
                            [es] => Estados Unidos
                            [fr] => États-Unis
                            [ja] => アメリカ合衆国
                            [pt-BR] => Estados Unidos
                            [ru] => Сша
                            [zh-CN] => 美国
                        )

                )

            [registered_country] => Array
                (
                    [geoname_id] => 6252001
                    [iso_code] => US
                    [names] => Array
                        (
                            [de] => USA
                            [en] => United States
                            [es] => Estados Unidos
                            [fr] => États-Unis
                            [ja] => アメリカ合衆国
                            [pt-BR] => Estados Unidos
                            [ru] => Сша
                            [zh-CN] => 美国
                        )

                )

            [traits] => Array
                (
                    [ip_address] => 1.2.3.4
                )

        )

)
oschwald commented 9 years ago

->continent->code. There are API docs if you have more such questions.

lordspace commented 9 years ago

Thanks!