{
"event": "PreToolUse",
"tool_name": "Bash",
"tool_input": {
"command": "ssh root@prod.karlkratz.com 'cd \/var\/www\/prod.karlkratz.de && php -r \"\nrequire_once \\\"vendor\/autoload.php\\\";\n\\$loader = App\\\\Helpers\\\\ConfigLoader::getInstance();\n\\$ips = \\$loader->get(\\\"bot.whitelist.ips\\\");\necho \\\"Whitelist IPs (\\\" . count(\\$ips) . \\\" entries):\\\" . PHP_EOL;\nforeach (\\$ips as \\$ip) { echo \\\" \\\" . \\$ip . PHP_EOL; }\n\nfunction testIpInRange(string \\$ip, string \\$range): bool {\n if (strpos(\\$range, \\\"\/\\\") === false) return \\$ip === \\$range;\n list(\\$subnet, \\$mask) = explode(\\\"\/\\\", \\$range);\n \\$ip_long = ip2long(\\$ip);\n \\$subnet_long = ip2long(\\$subnet);\n \\$mask_long = ~((1 << (32 - \\$mask)) - 1);\n return (\\$ip_long & \\$mask_long) === (\\$subnet_long & \\$mask_long);\n}\n\necho PHP_EOL;\nforeach ([\\\"66.249.92.161\\\", \\\"66.249.66.32\\\", \\\"66.249.93.98\\\", \\\"40.77.167.50\\\", \\\"1.2.3.4\\\"] as \\$testIp) {\n \\$found = false;\n foreach (\\$ips as \\$range) {\n if (testIpInRange(\\$testIp, \\$range)) {\n echo \\$testIp . \\\" -> WHITELISTED (\\\" . \\$range . \\\")\\\" . PHP_EOL;\n \\$found = true;\n break;\n }\n }\n if (!\\$found) echo \\$testIp . \\\" -> NOT whitelisted\\\" . PHP_EOL;\n}\n\"'",
"description": "End-to-end PHP test of whitelist IP matching"
}
}