1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
export default async function(req: Request): Promise<Response> {
const url = new URL(req.url);
const headers = Object.fromEntries(req.headers.entries());
if (url.pathname === "/help") {
return new Response("Available paths: list, ip, agent, ct, help");
}
if (url.pathname === "/list") {
let text = Object.entries(headers).map(([k, v]) => `${k}: ${v}`).join("\n");
return new Response(text);
}
if (url.pathname === "/ip") {
return new Response(req.headers.get("true-client-ip"));
}
if (url.pathname === "/agent") {
return new Response(req.headers.get("user-agent"));
}
if (url.pathname === "/ct") {
return new Response(req.headers.get("cf-ipcountry"));
}
return Response.json({ headers });
}