first commit
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
// ═══════════════════════════════════════════════════════
|
||||
// IP Lookup
|
||||
// ═══════════════════════════════════════════════════════
|
||||
async function lookupIP() {
|
||||
const ip = document.getElementById('ipInput').value.trim();
|
||||
setStatus('ipStatus','info','Looking up...');
|
||||
const d = await apiGet(ip ? '/api/ip/' + ip : '/api/ip');
|
||||
if (d.success && d.status !== 'fail') {
|
||||
const fields = [
|
||||
['IP Address', d.query], ['Country', d.country], ['Region', d.regionName],
|
||||
['City', d.city], ['ZIP', d.zip], ['Latitude', d.lat],
|
||||
['Longitude', d.lon], ['Timezone', d.timezone], ['ISP', d.isp],
|
||||
['Organization', d.org], ['AS', d.as]
|
||||
];
|
||||
document.getElementById('ipResults').innerHTML = fields.map(([l, v]) =>
|
||||
`<div class="ip-card"><div class="label">${l}</div><div class="value">${v || '—'}</div></div>`).join('');
|
||||
setStatus('ipStatus','success','Lookup complete ✓');
|
||||
} else setStatus('ipStatus','error', d.message || d.error || 'Lookup failed');
|
||||
}
|
||||
|
||||
// Keyboard shortcut
|
||||
document.getElementById('ipInput').addEventListener('keydown', e => { if(e.key==='Enter') lookupIP(); });
|
||||
|
||||
Reference in New Issue
Block a user