Spaces:
Sleeping
Sleeping
import express from "express"; | |
const app = express(); | |
const port = 7860; | |
const isipok = async (ip) => { | |
const ret = await fetch("https://copilot.microsoft.com/", { | |
headers: { | |
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", | |
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6", | |
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0", | |
"X-forwarded-for": ip | |
} | |
}); | |
if (!ret.ok) { | |
return { ip, status: false }; | |
} | |
const txt = await ret.text(); | |
if (txt.indexOf("studiostaticassetsprod.azureedge.net/bundle-cmc/assets/bundle.js") >= 0) { | |
return { ip, status: false, reason: "nononononon" }; | |
} | |
if (txt.indexOf('<div class="title" role="heading" aria-level="1">登录以体验 Microsoft Copilot</div>') >= 0) { | |
return { ip, status: false, reason: "ddddddddddd" }; | |
} | |
const rt = /Region:"(.*?)"/.exec(txt); | |
if (!rt) { | |
return { ip, status: false }; | |
} | |
const rg = rt[1]; | |
if (!rg) { | |
return { ip, status: false }; | |
} | |
return { ip, status: true, region: rg }; | |
} | |
const testAll = async (i, i0, i1, i2) => { | |
const results = []; | |
const testNext = async () => { | |
i2++; | |
if (i2 > 255) { | |
return false; | |
// i2 = 1; | |
// i1++; | |
} | |
if (i1 > 255) { | |
return false; | |
// i1 = 1; | |
// i0++; | |
} | |
if (i0 > 255) { | |
i0 = 1; | |
i++; | |
} | |
if (i > 255) { | |
return false; | |
} | |
const XForwardedForIP = `${i}.${i0}.${i1}.${i2}`; | |
try { | |
const result = await isipok(XForwardedForIP); | |
results.push(result); | |
} catch (error) { | |
console.error(error); | |
} | |
return true; | |
} | |
let count = 0; | |
let stop = false; | |
while (true) { | |
while (count >= 16) { | |
await new Promise((t) => { setTimeout(t, 100) }); | |
} | |
count++; | |
testNext().then((rt) => { | |
count--; | |
if (!rt) { | |
stop = true; | |
} | |
}); | |
if (stop) { | |
break; | |
} | |
} | |
return results; | |
} | |
app.get("/", async (req, res) => { | |
const results = await testAll(104, 28, 1, 1); | |
res.json(results); | |
}); | |
app.listen(port, () => { | |
console.log(`Server is running at http://localhost:${port}`); | |
}); | |