2026/05/30(土)このブログにやってくる海外IPのBOTの挙動を軽く調べた

投稿日:

アクセス解析にノイズが出て鬱陶しいので、海外IPのUAを幾らか調べてみたまとめ。

今年の1月末付近と、5月末に調査を実施している。

集計条件

https://blog.lycolia.info/配下にHTTPリクエストが来た時で、そのURLにファイルが存在しない場合に、海外IP判定が出たものについて次の基準で集計している。

  • 2026-01-29 19:30:25 -> 2026-02-03 07:23:22
    • UAに次を含まない
      • bot | curl | wget | google | bing | mastodon | misskey | pleroma | akkoma | lemmy | activitypub | hatena | github | tumblr
    • 日本、韓国、台湾のIP以外
  • 2026-05-25 20:15:52 -> 2026-05-29 23:19:00
    • UAに次を含まない
      • bot | curl | wget | google | bing | mastodon | misskey | pleroma | akkoma | lemmy | activitypub | hatena | github | tumblr | meta
    • 日本のIP以外

IPの国判定にはその月のDBIP-City.mmdbを使用した。

2026-01-29 19:30:25 -> 2026-02-03 07:23:22

UA別

  • meta-externalagent/1.1はFacebookやInstagramのOGP収集クローラーらしいが、異常にアクセスが多い。無害なので5月のログでは許可している
  • Baiduspiderは百度のクローラー、個人的にいい印象はない。
  • NULL、UA未設定。まともなアクセスでない可能性が高い。PHPのfile_get_contents()だとデフォは空。curlはcurl/8.19.0みたいなのがデフォルトで入る。
  • FaradayはRubyのHTTPクライアントらしい
  • Twingly Recon-Sjostromは何かしらのフィードリーダーの可能性がある
UserAgent 件数
meta-externalagent/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler) 975
Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html) 490
NULL 273
Faraday v1.10.4 104
Chrome Privacy Preserving Prefetch Proxy 58
Apache-HttpClient/4.5.2 (Java/1.8.0_161) 40
Apache-HttpClient/4.5.2 (Java/1.8.0_151) 40
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36 21
Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36 20
node 19
Mozilla/5.0 (X11; NetBSD) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36 18
Mozilla/5.0 (X11; CrOS i686 4319.74.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36 17
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.517 Safari/537.36 12
Mozilla/5.0 (X11; CrOS i686 3912.101.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36 11
facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php) 10
Twingly Recon-Sjostrom/1.0 (+https://app.twingly.com/public-docs/crawler) 10
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/4E423F 10
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 8
Mozilla/5.0 (compatible; crawler) 7
NotionEmbedder 6
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 6
python-requests/2.32.4 5
Python/3.9 aiohttp/3.10.6 5
Go-http-client/2.0 5
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0 3
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 3
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 3
Go-http-client/1.1 3
Fedineko (crabo/0.3.1; +https://fedineko.org/about) 3
python-httpx/0.28.1 2
imgproxy/3.30.0 2
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user) 2
Mozilla/5.0 (X11; Ubuntu; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 2
Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:114.0) Gecko/20100101 Firefox/114.0 2
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 2
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 2
ALittle Client 2
undici 1
ktor-client 1
aria2/1.36.0 1
Python/3.11 aiohttp/3.13.3 1
Mozilla/5.0 (compatible; VulnScanner/1.0; +https://example.com/) 1
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:79.0) Gecko/20100101 Firefox/79.0 1
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:128.3) Gecko/20100101 Firefox/128.3 1
Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:79.0) Gecko/20100101 Firefox/79.0 1
Mozilla/5.0 (X11; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0 1
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 1
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 1
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 1
Mozilla/5.0 (X11; Linux i686; rv:1.9.7.20) Gecko/5137-01-18 15:15:18.309540 Firefox/6.0 1
Mozilla/5.0 1
More Internet Explorer 8.0 user agents strings -->> 1
Iframely/1.3.1 (+https://iframely.com/docs/about) Atlassian 1
BaiduSpider 1

国別

アメリカが最多で、中国、インドと続いた。

件数
US 1,329
CN 575
IN 125
VN 67
JM 19
BR 15
SG 14
IE 9
CA 8
MX 6
IQ 6
NL 5
BD 5
UA 3
AR 3
ZA 2
PL 2
GB 2
FR 2
EE 2
DE 2
TR 1
TN 1
TM 1
SE 1
PY 1
PT 1
ID 1
HK 1
GE 1
ES 1
DZ 1
CO 1
CL 1
BH 1
BE 1
AT 1
AD 1

UAがNULLの国別

アメリカにNULLのUAが多く、意外と中国にはなかった。偽装UAであれ設定してるだけまともといえる。

件数
US 143
IN 124
IE 4
SG 2

アクセス先URL

ほとんどが公開URLへのアクセスで有害なURLへのアクセスは思ったよりなかった。

URL 件数
無害なURL 1,196
有害なURL 467

2026-05-25 20:15:52 -> 2026-05-29 23:19:00

UA別

  • metaを弾くようにした結果NULLがトップに上がってきた
  • Baiduspiderが来なくなった
  • Faradayがrururu.appからのクロールであることが判明した(rururu.appに出た瞬間にログを確認したところ、これしかいなかったため)
  • Fediverse系のUAが増えた気がする
UserAgent 件数
NULL 801
python-httpx/0.28.1 109
Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html) 105
Faraday v2.14.2 99
amazon-Quick-on-behalf-of-e1871480 85
Chrome Privacy Preserving Prefetch Proxy 62
Mozilla/5.0 three-stage-hot-model-probe/2.0 45
Go-http-client/2.0 35
Apache-HttpClient/4.5.2 (Java/1.8.0_161) 20
facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php) 18
Twingly Recon-Sjostrom/1.0 (+https://app.twingly.com/public-docs/crawler) 14
Python/3.12 aiohttp/3.13.3 6
Mozilla/5.0 6
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.6312.86 Safari/537.36 4
fediway-ingest/0.1 3
Mozilla/5.0 (compatible; NuxtFyi/0.1; +https://nuxt.fyi) 3
ALittle Client 3
facebookexternalhit/1.1 2
Ruby 2
Python/3.11 aiohttp/3.9.5 2
PubkyWebIndex/0.1 (+https://pubky.app) 2
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Claude-User/1.0; +claude-user@anthropic.com) 2
Mozilla/5.0 (compatible; LinkRing/1.0; +https://linkring.lol) 2
Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 2
Iframely/1.3.1 (+https://iframely.com/docs/about) Atlassian 2
Amethyst/1.08.0 2
Amethyst/0.94.3 2
python-httpx/0.27.2 1
git/2.34.1 1
SubstackContentFetch/1.0 (https://substack.com/) 1
Python/3.9 aiohttp/3.13.5 1
Python/3.12 aiohttp/3.13.5 1
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Bluesky Cardyb/1.1; +mailto:support@bsky.app) Chrome/W.X.Y.Z Safari/537.36 1
Mozilla/5.0 (compatible; crawler) 1
Mozilla/5.0 (compatible; InternetMeasurement/1.0; +https://internet-measurement.com/) 1
Mozilla/5.0 (compatible; ClarityPlatformCrawler/1.0; +https://clarity.microsoft.com) 1
Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/) 1
Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36 1
Mozilla/5.0 (X11; NetBSD) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36 1
Mozilla/5.0 (X11; CrOS i686 4319.74.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36 1
Java/25.0.3 1
Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity 1

国別

前回15件しかなかったブラジルが425件に増えてトップに躍り出た。ブラジルに何があるんだ…。AWSのデータセンター?

そしてアメリカ、カナダ、中国、台湾と次ぐ。アメリカはAWSとかが多い気がする。カナダは知らん。中国は多分人間が来ている気がしているがよくわかっていない。台湾は今回ログの範囲に含めたため初登場。韓国からのアクセスはなかったようだ。

件数
BR 425
US 358
CA 282
CN 276
TW 62
SE 16
SG 8
NL 4
GB 4
DE 4
UA 2
SI 2
RU 2
MG 2
BE 2
VN 1
LU 1
BD 1
AD 1

UAがNULLの国別

ブラジルからのアクセスに悪質なものが多かったことが推測できる。

件数
BR 424
CA 282
US 94
UA 1

アクセス先URL

圧倒的に有害なアクセスが増えていた。

URL 件数
無害なURL 207
有害なURL 1,075

集計クエリ

事後分析するためにデータをSQLiteに保存していたので、そのクエリ。実は1月のデータはTSVだったので、地味にコンバートに苦労したが、SQLiteクライアントがTSVからのインポートをサポートしていたので、引っかかったのはTSVのタイムスタンプがSat May 30 00:50:56 2026だったのを、DBのタイムスタンプのYYYY-MM-DD HH:mm:ssに変えるくらいだった。これはLLMに変換SQLを出してもらって良しなにしてもらった。

集計テーブルのDDL

CREATE TABLE "deny_log" (
	"id"	INTEGER,
	"url"	TEXT,
	"country"	TEXT,
	"remote_addr"	TEXT,
	"user_agent"	TEXT,
	"timestamp"	TEXT,
	PRIMARY KEY("id" AUTOINCREMENT)
)

UA別

SELECT
	T.UA,
	COUNT(T.UA)
FROM
	(
		SELECT
			CASE
				WHEN user_agent IS NULL
				THEN "NULL"
				ELSE user_agent
			END AS UA
		FROM
			deny_log
		WHERE
			timestamp < '2026-05-20'
	) T
GROUP BY
	UA
ORDER BY
	COUNT(T.UA) DESC

国別

SELECT
	country,
	COUNT(country)
FROM
	deny_log
WHERE
	timestamp < '2026-05-20'
GROUP BY
	country
ORDER BY
	COUNT(country) DESC

UAがNULLの国別

SELECT
	country,
	COUNT(country)
FROM
	deny_log
WHERE
	timestamp < '2026-05-20'
AND user_agent IS NULL
GROUP BY
	country
ORDER BY
	COUNT(country) DESC

アクセス先URL

URLの善悪分類はエクセルを使って手動。

無害=robot.txtや記事URLなどの公開URL、有害=管理画面や何かのスクリプトのURLを叩いているもの。

SELECT
	url,
	COUNT(url)
FROM
	deny_log
WHERE
	timestamp < '2026-05-20'
AND (
	url != '/'
	AND url NOT LIKE '/0%'
)
GROUP BY
	url
ORDER BY
	COUNT(url) DESC

あとがき

元々はアクセス解析に出ないようにブロックするために集計していたが(robot.txtが尊重されるとか思ってないので)、善良なBOTの大半が海外IPで対応が面倒なのでいったんブロックはやめることにした。

将来的にはAnubis辺りを導入してWAFを掛けることで対応したいと思う。

あとこれをやってて思ったこととしてUAの中に自分が何者かを入れてくれてるクライアントは凄く親切だなと思った。

2026/05/26(火)直近でやりたいことリスト

更新日:
投稿日:

やりたいことが多すぎて消化が追い付かない!

サイト運営周り

自作サーバー近隣

  • 監視周りの整備
    • OpenWrtのメトリクス集め
    • データソースのセットアップはしたものの整備されてないGrafanaのダッシュボード整理
    • 発報体制の整備
    • 外形監視とステータスページの導入
  • 自宅サーバーのリプレース
    • Ubuntu -> Debian
  • WAF(Anubis)の導入
    • Claudflareより自由ソフトウェアだろ!
    • かわいいし!

CMS開発回り

まずは何が欲しいのかの要件整理からしていかないといけない奴ら。

  • adiary代替CMSの作成
    • adiaryの基本機能は保ったままプラガブルでメンテナンスがしやすいCMSの作成
    • MCP対応もしたい
    • パフォーマンスはadiaryほどギチギチに詰めない予定
    • CGI動作
    • Markdown parserの全面刷新
  • Wikiの作成
    • 上記CMSの基盤を転用して整備したい
    • PukiwikiがMarkdownで書けず、既存の改造品もしっくりこないため
    • ブログには日々のログを、Wikiにはあとで見返す情報の集約を、というので役割分担をしたい

書きたいけど書けてない日記のネタを書く

全部書くかどうかはわからないが書いてないと忘れてしまいそうなのと、発生日が不明だと日付ベースで管理している行動メモから引き出せないのでメモっておく。

ネタの発生日 内容
2025-10-25 ゾンビランドサガ現地鑑賞
2025-10-31 ゾンビランドサガ マンホール巡礼
2025-11-15 神戸→川崎のスーパー映画館はしご、チネチッタ突貫記
2025-11-21 伊万里湾大花火大会2025+マンホール回収
2025-11-29 去年、香川漆器を修理に出した話の続き、修理を受け取ってきたときの旅行記
2026-05-02 超かぐや姫!を観に高知に行った話
2026-05-02 超かぐや姫!感想2
2026-05-23 須磨浦山上遊園に行った話

ゾンサガの鑑賞録も書いてないが、これについては書くかどうかがとても怪しい。

旅行回り

それ以前にやりたいことが多すぎるため、いずれも優先度は低い。

  • 姫路市立水族館でナマコを触りたい
    • ナマコ触れる場所では恐らく三宮から最も近く、他だと和歌山や豊岡、玉野になってくる
  • 冬雨文庫に行ってみる
    • 岡山市・オランダ通りの古書店「よつば文庫」
  • 鷲羽山ハイランドでバンジージャンプをする