diff --git a/templates/status.html b/templates/status.html
index 2cc283e..5c9e332 100644
--- a/templates/status.html
+++ b/templates/status.html
@@ -37,7 +37,8 @@ Connected Peers
// Extract IP from formats like "10.9.0.132/32" or "99.92.101.230:56078"
const match = (ip || '').trim().match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/);
if (!match) return null; // Empty/invalid IPs will be sorted to bottom
- return (parseInt(match[1]) << 24) + (parseInt(match[2]) << 16) + (parseInt(match[3]) << 8) + parseInt(match[4]);
+ // Use multiplication instead of bit shifting to avoid signed 32-bit integer issues
+ return (parseInt(match[1]) * 16777216) + (parseInt(match[2]) * 65536) + (parseInt(match[3]) * 256) + parseInt(match[4]);
}
function getSortValue(cell, sortType) {