#+title: ifconfig.php * what php script. shows your ip address, user agent, and related info. same idea as ifconfig.me and ifconfig.co. output as html (default), plain text, xml, or json. single values on request. * use #+begin_example live at ip.cmc.pub: - ?q=text all, plain text - ?q=xml all, xml - ?q=ip ip only - ?q=ua user agent only #+end_example #+begin_src sh curl -L -X GET https://ip.cmc.pub/\?q\=text #+end_src apache rewrite so /ifconfig/xml works without the query string: #+begin_src sh RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ifconfig$ ifconfig.php [L] RewriteRule ^ifconfig/(.*)$ /ifconfig.php?q=$1 [L] #+end_src * develop install php and composer. fedora: #+begin_src sh sudo dnf install php-cli composer #+end_src maxmind-db dependency: #+begin_src sh composer require maxmind-db/reader:~1.0 composer update #+end_src geolite2 database. not in the repo: maxmind-licensed, ~69mb, and stale the day after you download it. sign up for a free maxmind account, then: #+begin_src sh https://www.maxmind.com/en/accounts/current/geoip/downloads #+end_src download GeoLite2-City in mmdb form and put GeoLite2-City.mmdb next to ifconfig.php. without it the page still serves, minus the geo block. dev server: #+begin_src sh sudo php --server localhost:8080 --docroot . #+end_src