指定した(もしくは自分自身の)IPアドレスが日本国内のアドレスか判断します。
- デフォルトで自分自身の接続元IPv4アドレスを用いてテストします。
- IPv4アドレスデータベースは
https://ipv4.fetus.jpを基に設定しています。 内部データベースは テキストファイル です。(せめてsqliteにしときゃよかったって後悔してる)- 内部データベースは使用しません。毎回神様データにアクセスします。
- ただし近々実装予定です。 https://ipv4.fetus.jp/about#automation
- RFC 1918 で定義されている IPv4プライベートアドレス はサポートしています。(Ver2以降)
- RFC 5771 で定義されている IPv4マルチキャストアドレス はサポートしていません。
- RFC 4193 で定義されている IPv6ユニキャストアドレス はサポートしていません。
- RFC 2460 で定義されている IPv6アドレス はサポートしていません。
サーバの設定で DirectoryIndex index.php を設定している場合はファイル名を省略できます。もしくはファイル名を置換してください。
GET https://api.n138.jp/isJP/- PHP: >=5.4
- Apache: >= 2.4
- HTTP WEB Server(i.e: Apache, nginx)
- PHP
./.secret/config.json
{
"internal": {
"databases": [
{
"host": "127.0.0.1",
"port": "5432",
"schema": "pgsql",
"user": "postgres",
"password": "postgres",
"database": "postgres",
"tableprefix": "isjp"
}
],
"api": {
"ratelimit": 100,
"timelimit": "10 minute"
}
}
}CREATE TABLE IF NOT EXISTS isjp (
"timestamp" double precision NOT NULL,
uuid text NOT NULL,
client text NOT NULL,
request text NOT NULL,
client_nameofaddr text,
isjp boolean DEFAULT false,
CONSTRAINT isjp_pkey PRIMARY KEY (uuid)
);CREATE OR REPLACE VIEW isjp_in10min
AS
SELECT isjp."timestamp",
isjp.uuid,
isjp.client,
isjp.client_nameofaddr,
isjp.request,
isjp.isjp
FROM isjp
WHERE isjp."timestamp" > EXTRACT(epoch FROM CURRENT_TIMESTAMP - '00:10:00'::interval)::double precision
ORDER BY isjp."timestamp";CREATE OR REPLACE VIEW isjp_in60min
AS
SELECT isjp."timestamp",
isjp.uuid,
isjp.client,
isjp.client_nameofaddr,
isjp.request,
isjp.isjp
FROM isjp
WHERE isjp."timestamp" > EXTRACT(epoch FROM CURRENT_TIMESTAMP - '01:00:00'::interval)::double precision
ORDER BY isjp."timestamp";[
true,
"0.0.0.0"
]since: 0aaaf2add1efcc74a580cb63e13ffc36aef86d57
{
"meta":{
"version":2,
"runtime_hash":"ffffffffffffffffffffffffffffffff",
"runtime_version":"ffffffff",
"issued_at":{
"timestamp":1693704010,
"description":"2023\/09\/03 10:20:10 JST"
}
},
"result":{
"result":{
"result":true,
"detail":"ja_JP"
}
,"request":"183.x.x.252"
}
}