如何仅使用javascript检查给定的IP是否是内部的?
例如,如果您获得的IP为192.168.1.1,则脚本应对此进行验证并发出警报(如果这是内部IP或外部IP)。
答案 0 :(得分:10)
如果您的意思是私人,请确保它属于以下范围之一:
私有IP地址范围
可用IP的范围和数量如下:
10.0.0.0 - 10.255.255.255地址:16,777,216
172.16.0.0 - 172.31.255.255地址:1,048,576
192.168.0.0 - 192.168.255.255地址:65,536
这样的功能应该有所帮助:
function isPrivateIP(ip) {
var parts = ip.split('.');
return parts[0] === '10' ||
(parts[0] === '172' && (parseInt(parts[1], 10) >= 16 && parseInt(parts[1], 10) <= 31)) ||
(parts[0] === '192' && parts[1] === '168');
}
答案 1 :(得分:4)
内部IP如下:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
为他们写正确的正则表达式。
/10\.\d+\.\d+\.\d+/
/192\.168\.\d+\.\d+/
我留给你找出172.xxx范围的正确正则表达式。
答案 2 :(得分:1)
您可以使用ipaddr.js
库并检查它是否返回"private"
:
const ipaddrJs = require('ipaddr.js');
ipaddrJs.parse('192.168.5.1').range()
> 'private'
https://github.com/whitequark/ipaddr.js/blob/master/lib/ipaddr.js
如果您使用Node.js,请查看此处:https://www.npmjs.com/package/ipaddr.js
答案 3 :(得分:0)
试试这个!
[ravibeli@localdomain ~]$ journalctl -xe
May 07 16:06:53 localdomain sudo[6971]: pam_unix(sudo:session): session opened for user root by (uid=0)
May 07 16:06:53 localdomain audit[6971]: USER_START pid=6971 uid=0 auid=1000 ses=2 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:sess
May 07 16:06:53 localdomain systemd[1]: Starting SYSV: MySQL database server....
-- Subject: Unit mysqld.service has begun start-up
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mysqld.service has begun starting up.
May 07 16:06:53 localdomain mysqld[8145]: chown: invalid user: ‘mysql:mysql’
May 07 16:06:54 localdomain audit[726]: USER_AVC pid=726 uid=81 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 msg='avc:
exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?'
May 07 16:06:54 localdomain mysqld[8145]: Initializing MySQL database: 2018-05-07T10:36:54.847676Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is depre
May 07 16:06:54 localdomain mysqld[8145]: 2018-05-07T10:36:54.851156Z 0 [ERROR] Fatal error: Can't change to run as user 'mysql' ; Please check that the user
May 07 16:06:54 localdomain mysqld[8145]: 2018-05-07T10:36:54.851678Z 0 [ERROR] Aborting
May 07 16:06:54 localdomain mysqld[8145]: [FAILED]
May 07 16:06:54 localdomain systemd[1]: mysqld.service: Control process exited, code=exited status=1
May 07 16:06:54 localdomain systemd[1]: Failed to start SYSV: MySQL database server..
-- Subject: Unit mysqld.service has failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mysqld.service has failed.
--
-- The result is failed.
May 07 16:06:54 localdomain systemd[1]: mysqld.service: Unit entered failed state.
May 07 16:06:54 localdomain systemd[1]: mysqld.service: Failed with result 'exit-code'.
May 07 16:06:54 localdomain audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=mysqld comm="systemd
May 07 16:06:54 localdomain sudo[6971]: pam_unix(sudo:session): session closed for user root
May 07 16:06:54 localdomain audit[6971]: USER_END pid=6971 uid=0 auid=1000 ses=2 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:sessio
May 07 16:06:54 localdomain audit[6971]: CRED_DISP pid=6971 uid=0 auid=1000 ses=2 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:setcr
lines 1393-1422/1422