mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 16:00:24 +08:00 
			
		
		
		
	IP名单搜索IP时同时搜索范围
This commit is contained in:
		@@ -514,13 +514,17 @@ func (this *IPItemDAO) CountAllEnabledIPItems(tx *dbs.Tx, sourceUserId int64, ke
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	if len(keyword) > 0 {
 | 
						if len(keyword) > 0 {
 | 
				
			||||||
		if net.ParseIP(keyword) != nil { // 是一个IP地址
 | 
							if net.ParseIP(keyword) != nil { // 是一个IP地址
 | 
				
			||||||
			query.Attr("ipFrom", keyword)
 | 
								// TODO 支持IPv6
 | 
				
			||||||
 | 
								query.Where("(ipFrom =:ipKeyword OR INET_ATON(:ipKeyword) BETWEEN INET_ATON(ipFrom) AND INET_ATON(ipTo))").
 | 
				
			||||||
 | 
									Param("ipKeyword", keyword)
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			query.Like("ipFrom", dbutils.QuoteLike(keyword))
 | 
								query.Like("ipFrom", dbutils.QuoteLike(keyword))
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if len(ip) > 0 {
 | 
						if len(ip) > 0 {
 | 
				
			||||||
		query.Attr("ipFrom", ip)
 | 
							// TODO 支持IPv6
 | 
				
			||||||
 | 
							query.Where("(ipFrom =:ip OR INET_ATON(:ip) BETWEEN INET_ATON(ipFrom) AND INET_ATON(ipTo))").
 | 
				
			||||||
 | 
								Param("ip", ip)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if listId > 0 {
 | 
						if listId > 0 {
 | 
				
			||||||
		query.Attr("listId", listId)
 | 
							query.Attr("listId", listId)
 | 
				
			||||||
@@ -560,13 +564,17 @@ func (this *IPItemDAO) ListAllEnabledIPItems(tx *dbs.Tx, sourceUserId int64, key
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	if len(keyword) > 0 {
 | 
						if len(keyword) > 0 {
 | 
				
			||||||
		if net.ParseIP(keyword) != nil { // 是一个IP地址
 | 
							if net.ParseIP(keyword) != nil { // 是一个IP地址
 | 
				
			||||||
			query.Attr("ipFrom", keyword)
 | 
								// TODO 支持IPv6
 | 
				
			||||||
 | 
								query.Where("(ipFrom =:ipKeyword OR INET_ATON(:ipKeyword) BETWEEN INET_ATON(ipFrom) AND INET_ATON(ipTo))").
 | 
				
			||||||
 | 
									Param("ipKeyword", keyword)
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			query.Like("ipFrom", dbutils.QuoteLike(keyword))
 | 
								query.Like("ipFrom", dbutils.QuoteLike(keyword))
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if len(ip) > 0 {
 | 
						if len(ip) > 0 {
 | 
				
			||||||
		query.Attr("ipFrom", ip)
 | 
							// TODO 支持IPv6
 | 
				
			||||||
 | 
							query.Where("(ipFrom =:ip OR INET_ATON(:ip) BETWEEN INET_ATON(ipFrom) AND INET_ATON(ipTo))").
 | 
				
			||||||
 | 
								Param("ip", ip)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if listId > 0 {
 | 
						if listId > 0 {
 | 
				
			||||||
		query.Attr("listId", listId)
 | 
							query.Attr("listId", listId)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user