前言:
此刻大家对“js获取当前用户ip地址”可能比较关注,咱们都需要剖析一些“js获取当前用户ip地址”的相关知识。那么小编也在网络上网罗了一些对于“js获取当前用户ip地址””的相关知识,希望大家能喜欢,兄弟们一起来了解一下吧!题目链接: 力扣
题目描述: 判断给定的字符串,是否是有效的IPv4或者IPv6。其中,二者满足的条件懂得都懂[大笑]。
/** * @param {string} IP * @return {string} */var checkIPv4 = (IP) => { // 判断开始和结尾两个位置是否为. if (IP[0] === '.' || IP[IP.length - 1] === '.') { return 'Neither'; } var ipv4List = [], str = ''; for (var i = 0; i < IP.length; i ++) { if ('0123456789.'.indexOf(IP[i]) === -1) { return 'Neither'; } if(IP[i] === '.') { if (str === '') { return 'Neither'; } // 存储以.分割的每一个字符 ipv4List.push(str); str = ''; continue; } str += IP[i]; } if (str) { ipv4List.push(str); } // 判断长度是否满足要求 if (ipv4List.length !== 4) { return 'Neither'; } // 每一个位置判断 for (var i = 0; i < ipv4List.length; i ++) { str = ipv4List[i]; if (str[0] === '0' && str.length !== 1) { return 'Neither'; } var num = parseInt(str); if (num < 0 || num > 255) { return 'Neither'; } } return 'IPv4';}var checkIPv6 = (IP) => { // 思路同checkIPv4 if (IP[0] === ':' || IP[IP.length - 1] === ':') { return 'Neither'; } var ipv6List = [], str = ''; for (var i = 0; i < IP.length; i ++) { if(IP[i] === ':') { if (str === '' || str.length > 4) { return 'Neither'; } ipv6List.push(str); str = ''; continue; } str += IP[i]; } if (str.length > 4) { return 'Neither'; } if (str) { ipv6List.push(str); } if (ipv6List.length !== 8) { return 'Neither'; } return 'IPv6';}var validIPAddress = function(IP) { const regex = /[^A-Fa-f0-9\.:]/g; // 判断是否存在非IP地址要求的字符,若存在,则一定不为IP地址 if (IP.match(regex) !== null) { return 'Neither'; } if (IP.indexOf('.') !== -1) { // IP4以.分割 return checkIPv4(IP); } else if (IP.indexOf(':') !== -1) { // IP6以:分割 return checkIPv6(IP); } return 'Neither';};
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #js获取当前用户ip地址