# delta ```json curl -X GET -H "x-api-key: bXl6eXhlbC1wcm9k" http://vpce-0aaec58bdcc32416e-00ug9fku.vpce-svc-03f6bc335dcab60e5.us-east-1.vpce.amazonaws.com/v1/geoinfo.xml?ip=60.251.144.84 ``` # beta ```json curl -X GET -H "x-api-key: bXl6eXhlbC1wcm9k" http://vpce-01c22702016c5879e-go2xyqc4.vpce-svc-03f6bc335dcab60e5.us-east-1.vpce.amazonaws.com/v1/geoinfo.xml?ip=60.251.144.84 ``` delta : vpce-0aaec58bdcc32416e-00ug9fku.vpce-svc-03f6bc335dcab60e5.us-east-1.vpce.amazonaws.com ebeta : vpce-01c22702016c5879e-go2xyqc4.vpce-svc-03f6bc335dcab60e5.us-east-1.vpce.amazonaws.com # CA ![](https://i.imgur.com/TFcSGEP.png) # US ![](https://i.imgur.com/BR68nQw.png) // x-api-key 為 Beta Site Key: `bX_________==` --- # Testing GIS API --- ## /v1/geoinfo.json ### ✔ X-API-KEY must exist(cannot be blank) Request: ```zsh curl -X GET http://vpce-064cb995259ec8cb7-sqhe2t57.vpce-svc-0b7cb4deb05e4f0e5.us-east-1.vpce.amazonaws.com/v1/geoinfo.json ``` Response: ```zsh {"message":"Forbidden"} ``` ### ✔ IP to query for geo info must exist Request: ```zsh curl -X GET -H "x-api-key: bXl6eXhlbC1hbHBoYQ==" http://vpce-064cb995259ec8cb7-sqhe2t57.vpce-svc-0b7cb4deb05e4f0e5.us-east-1.vpce.amazonaws.com/v1/geoinfo.json ``` Response: ```zsh {"message":"ip can't be blank"} ``` ### ✔ IP to query for geo info must be an valid IP format(IPv4 or IPv6) Request: ```zsh curl -X GET -H "x-api-key: bXl6eXhlbC1hbHBoYQ==" http://vpce-064cb995259ec8cb7-sqhe2t57.vpce-svc-0b7cb4deb05e4f0e5.us-east-1.vpce.amazonaws.com/v1/geoinfo.json?ip=abc ``` Response: ```zsh {"message":"invalid ip format"} ``` ### ✔ For any valid IP, repsonse payload will be Valid geo info, if successfully lookup in DB Request: ```zsh curl -X GET -H "x-api-key: bXl6eXhlbC1hbHBoYQ==" http://vpce-064cb995259ec8cb7-sqhe2t57.vpce-svc-0b7cb4deb05e4f0e5.us-east-1.vpce.amazonaws.com/v1/geoinfo.json?ip=60.251.144.84 ``` Response: ```zsh { "60.251.144.84": { "latitude":25.0478, "longitude":121.5318, "continent_name":"Asia", "continent_code":"AS", "country_name":"Taiwan", "country_iso_code":"TW", "city_name":"Taipei", "time_zone":"Asia/Taipei" } } ``` ### ✔ For any valid IP, repsonse payload will be Unknown country name & country iso code, if IP not found in DB, or any unknown error during lookup in DB Request: ```zsh curl -X GET -H "x-api-key: bXl6eXhlbC1hbHBoYQ==" http://vpce-064cb995259ec8cb7-sqhe2t57.vpce-svc-0b7cb4deb05e4f0e5.us-east-1.vpce.amazonaws.com/v1/geoinfo.json?ip=fec0::205:1453:eb8:94ac:de30 ``` Response: ```zsh { "fec0::205:1453:eb8:94ac:de30": { "country_name":"UNKNOWN", "country_iso_code":"ZZ" } } ``` ### ✔ Scenario: valid IP(v4, private), e.g. 192.168.1.1 Request: ```zsh curl -X GET -H "x-api-key: bXl6eXhlbC1hbHBoYQ==" http://vpce-064cb995259ec8cb7-sqhe2t57.vpce-svc-0b7cb4deb05e4f0e5.us-east-1.vpce.amazonaws.com/v1/geoinfo.json?ip=192.168.1.1 ``` Response: ```zsh { "192.168.1.1": { "country_name":"UNKNOWN", "country_iso_code":"ZZ" } } ``` --- ## /v1/geoinfo.xml ### ✔ X-Api-Key must exist(cannot be blank) Request: ```zsh curl -X GET http://vpce-064cb995259ec8cb7-sqhe2t57.vpce-svc-0b7cb4deb05e4f0e5.us-east-1.vpce.amazonaws.com/v1/geoinfo.xml ``` Response: ```zsh <?xml version="1.0" encoding="UTF-8"?> <service name="geoip"> <entry name="result"> <error>1</error> <msg>Forbidden</msg> </entry> </service> ``` ### ✔ X-Api-Key must be valid(in white list APIKeys) Request: ```zsh curl -X GET -H "x-api-key: SOME_INVALID_KEY" http://vpce-064cb995259ec8cb7-sqhe2t57.vpce-svc-0b7cb4deb05e4f0e5.us-east-1.vpce.amazonaws.com/v1/geoinfo.xml ``` Response: ```zsh <?xml version="1.0" encoding="UTF-8"?> <service name="geoip"> <entry name="result"> <error>1</error> <msg>Forbidden</msg> </entry> </service> ``` ### ✔ IP to query for geo info must exist Request: ```zsh curl -X GET -H "x-api-key: bXl6eXhlbC1hbHBoYQ==" http://vpce-064cb995259ec8cb7-sqhe2t57.vpce-svc-0b7cb4deb05e4f0e5.us-east-1.vpce.amazonaws.com/v1/geoinfo.xml ``` Response: ```zsh <?xml version="1.0" encoding="UTF-8"?> <service name="geoip"> <entry name="result"> <error>1</error> <msg>ip can't be blank</msg> </entry> </service> ``` ### ✔ IP to query for geo info must be an valid IP format(IPV4 or IPv6) Request: ```zsh curl -X GET -H "x-api-key: bXl6eXhlbC1hbHBoYQ==" http://vpce-064cb995259ec8cb7-sqhe2t57.vpce-svc-0b7cb4deb05e4f0e5.us-east-1.vpce.amazonaws.com/v1/geoinfo.xml?ip=abc ``` Response: ```zsh <?xml version="1.0" encoding="UTF-8"?> <service name="geoip"> <entry name="result"> <error>1</error> <msg>ip is invalid</msg> </entry> </service> ``` ### ✔ For any valid IP, response payload will be Valid geo info, if successfully lookup in DB Request: ```zsh curl -X GET -H "x-api-key: bXl6eXhlbC1hbHBoYQ==" http://vpce-064cb995259ec8cb7-sqhe2t57.vpce-svc-0b7cb4deb05e4f0e5.us-east-1.vpce.amazonaws.com/v1/geoinfo.xml?ip=60.251.144.84 ``` Response: ```zsh <?xml version="1.0" encoding="UTF-8"?> <service name="geoip"> <entry name="result"> <error>0</error> <msg>ok</msg> <module name="GEOLOC_ZYXEL_S"> <longitude>121.531800</longitude> <latitude>25.047800</latitude> <continent_name>Asia</continent_name> <continent_code>AS</continent_code> <country_name>Taiwan</country_name> <country_code>TW</country_code> <city_name>Taipei</city_name> <timezone_loc>Asia/Taipei</timezone_loc> </module> </entry> </service> ``` ### ✔ For any Valid IP, response payload will be unknown country name & country iso code, if IP not found in DB, or any unknown error during lookip in DB Request: ```zsh curl -X GET -H "x-api-key: bXl6eXhlbC1hbHBoYQ==" http://vpce-064cb995259ec8cb7-sqhe2t57.vpce-svc-0b7cb4deb05e4f0e5.us-east-1.vpce.amazonaws.com/v1/geoinfo.xml?ip=fec0::205:1453:eb8:94ac:de30 ``` Response: ```zsh <?xml version="1.0" encoding="UTF-8"?> <service name="geoip"> <entry name="result"> <error>0</error> <msg>ok</msg> <module name="GEOLOC_ZYXEL_S"> <longitude>0.000000</longitude> <latitude>0.000000</latitude> <continent_name>UNKNOWN</continent_name> <continent_code>ZZ</continent_code> <country_name></country_name> <country_code></country_code> <city_name></city_name> <timezone_loc></timezone_loc> </module> </entry> </service> ``` ### ✔ Scenario: valid(v4, private), e.g.192.168.1.1 Request: ```zsh curl -X GET -H "x-api-key: bXl6eXhlbC1hbHBoYQ==" http://vpce-064cb995259ec8cb7-sqhe2t57.vpce-svc-0b7cb4deb05e4f0e5.us-east-1.vpce.amazonaws.com/v1/geoinfo.xml?ip=192.168.1.1 ``` Response: ```zsh <?xml version="1.0" encoding="UTF-8"?> <service name="geoip"> <entry name="result"> <error>0</error> <msg>ok</msg> <module name="GEOLOC_ZYXEL_S"> <longitude>0.000000</longitude> <latitude>0.000000</latitude> <continent_name></continent_name> <continent_code></continent_code> <country_name>UNKNOWN</country_name> <country_code>ZZ</country_code> <city_name></city_name> <timezone_loc></timezone_loc> </module> </entry> </service> ``` ## /v1/geoinfos.json ### ✔ X-API-Key must exist(connot be blank) Request: ```zsh curl -X POST http://vpce-064cb995259ec8cb7-sqhe2t57.vpce-svc-0b7cb4deb05e4f0e5.us-east-1.vpce.amazonaws.com/v1/geoinfos.json ``` Response: ```zsh {"message":"Forbidden"} ``` ### ✔ X-API-Key must be valid(in white list APIKeys Request: ```zsh curl -X POST -H "x-api-key: SOME_INVALID_KEY" http://vpce-064cb995259ec8cb7-sqhe2t57.vpce-svc-0b7cb4deb05e4f0e5.us-east-1.vpce.amazonaws.com/v1/geoinfos.json ``` Response: ```zsh {"message":"Forbidden"} ``` ### ✔ IP to query for geo info must exist