---
title: "PHPのgeoip_~な関数が機能しないとき"
id: "3767"
type: "post"
slug: "php%e3%81%aegeoip_%e3%81%aa%e9%96%a2%e6%95%b0%e3%81%8c%e6%a9%9f%e8%83%bd%e3%81%97%e3%81%aa%e3%81%84%e3%81%a8%e3%81%8d"
published_at: "2021-01-30T02:00:06+00:00"
modified_at: "2021-01-30T02:18:50+00:00"
url: "https://www.okin-jp.net/archives/3767"
markdown_url: "https://www.okin-jp.net/archives/3767.md"
excerpt: "MacのWindowsAppからxrdpにrdp接続するとusキーボードになってしまうので調査 Continue reading"
taxonomy_category:
  - "Linux"
  - "PC"
  - "Server"
taxonomy_post_tag:
  - "Geoip"
  - "PHP"
---

こんにちは

おきんです。

今回はPHPでgeoip_asnum_by_name()などGeoIPを前提とした関数が動かない時に解決した事例を紹介します。

返り値がnullになる場合はGeoIPのデータベースがインストールされていないです。

geoip_~の関数はPHPのリファレンスには書いてありませんが前提としてGeoIPのデータベースをインストールする必要があります。

シェルからphp-cliでインストール状況は確認できます。

`php -r "print_r(geoip_db_get_all_info());"`

[available] => 1になっているデータベースは使用できます。

aptやyamで一部がインストールできます。geoipで調べると引っかかると思います。

Ubuntu 18.04でaptからインストールできるgeoip-databaseとgeoip-database-extraでは下記のデータベースが利用できました。

| geoip-database |
| --- |
| GeoIP Large Country |
| GeoIP Country |
| geoip-database-extra |
| GeoIP City |
| GeoIP ASNum |

![おきん(blog)](https://secure.gravatar.com/avatar/90fa8845304183a491e9f3bfa0a6a44e46e25882407e4aa652815d725d55bd8c?s=100&r=g)

[おきん(blog)](https://www.okin-jp.net/archives/author/oops-okin)

[https://mi.okin-jp.net/@okin_p](https://mi.okin-jp.net/@okin_p)
(Misskey)  
 [https://fi.okin-jp.net/@okin_p](https://fi.okin-jp.net/@okin_p)
(Firefish)  
 [https://si.okin-jp.net/@okin_p](https://si.okin-jp.net/@okin_p)
(Mastodon)

[https://fedifile.net/@okin_p/profile/](https://fedifile.net/@okin_p/profile/)
  
 [https://twpf.jp/okin_p](https://twpf.jp/okin_p)
  
 [http://profile.hatena.ne.jp/okin_p/](http://profile.hatena.ne.jp/okin_p/)

名前：おきん  
 やってること：面倒なことをPHPにやらせる、IPv6でなにかする、車で移動する  
 主なガジェット：Google Pixel 4a (5G) ,iPhone XS(ジャンク), iPad mini5, その他

種別：IPv6 Single stack 猫

パソコンやガジェットについて書いていく…予定。

[https://twitter.com/okin_p](https://twitter.com/okin_p)
[https://si.okin-jp.net/@okin_p](https://si.okin-jp.net/@okin_p)

### *関連記事*

### コメントを残す[コメントをキャンセル](/archives/3767#respond)

このサイトはスパムを低減するために Akismet を使っています。[コメントデータの処理方法の詳細はこちらをご覧ください](https://akismet.com/privacy/)
。
