Files
2026-05-01 20:02:13 +02:00

24 lines
1.3 KiB
JavaScript

// ═══════════════════════════════════════════════════════
// 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(); });