假设我们有一个IP地址,例如:192.168.1.1/24
,如何从这个地址找到网络地址?
我试图删除IP地址,以便用0
替换最后一个字符,但它不起作用。
$('.ip').val().replace($('.ip').val().split('/')[0].split('.')[3], 0);
其中$('.ip')
是类名为ip
的输入的选择器。
返回092.168.1.1/24
。预期的结果是:192.168.1.0/24
答案 0 :(得分:1)
使用第三方服务可能是您的最佳选择:
$(document).ready(function () {
$.getJSON("http://jsonip.com/?callback=?", function (data) {
var ip = data.ip;
});
});
你可以尝试的其他方法是使用Jquery的ajax函数来获取你在服务器上创建的PHP文件的内容,并在那个php文件中使用
$ip=$_SERVER['REMOTE_ADDR'];
echo "IP address= $ip";
答案 1 :(得分:1)
以下内容将为您提供所需的结果:
$('.ip').val(function(_, value) {
return value.replace(/\d+(\/\d+)$/, '0$1');
});
\d+(\/\d+)$
替换一个或多个数字,后跟一个正斜杠(/
)和一个数字(在给定字符串的末尾)。
0$1
是替代品,因此0
后跟与()
之间的表达式匹配的值(在示例中为/24
)
只是旁注,这没有CIDR表示法的概念(即如果CIDR被更改,结果将是相同的 - 它是一个简单的字符串替换)