我想实现一个将ip检查到数组中的代码。我尝试过:
// 123.11.1.1, 123.1.1.12, 123.322.12.1
String[] list = merchant.getAllowed_ip_address().split(",");
String ip = request.getRemoteAddr();
for (ip : list.split(",")) {
if (!ip.trim().equals(request.getRemoteAddr().trim()))
{
// Not in list
}
}
但是我得到Cannot invoke split(String) on the array type String[]
。你知道我该怎么解决吗?
答案 0 :(得分:3)
您无法在列表上进行split
,一旦您分割了字符串,便拥有了所有IP的数组,那么您可以检查
// 123.11.1.1, 123.1.1.12, 123.322.12.1
String[] list = merchant.getAllowed_ip_address().split(",");
String ip = request.getRemoteAddr();
for (String allowedIP : list) {
if (!ip.trim().equals(allowedIP.trim())) {
// Not in list
}
}
此外,您可以为了简单起见
String ip = request.getRemoteAddr();
boolean notExist = Arrays.stream(merchant.getAllowed_ip_address().split(","))
.map(String::trim)
.noneMatch(ip::equals);
答案 1 :(得分:0)
当ip在列表中时,它将变量“ inthelist”设置为true,否则设置为false。进行了严格的均等比较,如果需要,可以用更复杂的方法代替。
final FirebaseUser user = auth.currentUser().then((FirebaseUser user) {
final userid = user.uid;
});
答案 2 :(得分:0)
for (int i=0;i<list.length ;i++) {
if (!ip.trim().equals(list[i].trim()))
{
// Not in list
}
您cannot
调用数组上的split
。该数组已包含分散的IP's
。您只需要检查该值是否匹配即可。