diff --git a/pom.xml b/pom.xml
index ae7ce81..1366b60 100644
--- a/pom.xml
+++ b/pom.xml
@@ -114,12 +114,6 @@
org.springframework.boot
spring-boot-starter-websocket
-
-
- org.lionsoul
- ip2region
- 2.7.0
-
diff --git a/src/main/java/com/lion/lionwebsite/Service/SubService.java b/src/main/java/com/lion/lionwebsite/Service/SubService.java
index b738c9e..359f9f9 100644
--- a/src/main/java/com/lion/lionwebsite/Service/SubService.java
+++ b/src/main/java/com/lion/lionwebsite/Service/SubService.java
@@ -6,10 +6,13 @@ import com.lion.lionwebsite.Domain.SubBind;
import com.lion.lionwebsite.Domain.SubUpdateRecord;
import com.lion.lionwebsite.Util.CustomUtil;
import com.lion.lionwebsite.Util.FileDownload;
+import com.lion.lionwebsite.Util.GalleryUtil;
import com.lion.lionwebsite.Util.Response;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
-import org.lionsoul.ip2region.xdb.Searcher;
+import lombok.extern.slf4j.Slf4j;
+import org.jsoup.Jsoup;
+import org.jsoup.select.Elements;
import org.springframework.stereotype.Service;
import java.io.IOException;
@@ -18,19 +21,12 @@ import java.util.ArrayList;
import java.util.Date;
@Service
+@Slf4j
public class SubService {
SubMapper subMapper;
- byte[] vIndex;
-
- String dbPath = "ip2region.xdb";
public SubService(SubMapper subMapper) {
this.subMapper = subMapper;
- try {
- vIndex = Searcher.loadVectorIndexFromFile(dbPath);
- }catch (Exception e){
- System.out.printf("failed to load vector index from `%s`: %s\n", dbPath, e);
- }
}
public String insertSubBind(String user){
@@ -93,21 +89,17 @@ public class SubService {
if(UA == null)
return;
- StringBuilder location = new StringBuilder();
- Searcher searcher;
+ String location;
try {
- searcher = Searcher.newWithVectorIndex(dbPath, vIndex);
- String region = searcher.search(ip);
- String[] temp = region.split("\\|");
- for (int i = 2; i < temp.length; i++)
- if(!temp[i].equals("0"))
- location.append(temp[i]).append(" ");
- } catch (Exception e) {
- System.out.printf("failed to create vectorIndex cached searcher with `%s`: %s\n", dbPath, e);
- return;
+ String page = GalleryUtil.requests("https://www.ip138.com/iplookup.php?ip=" + ip, "get", null, null);
+ Elements tds = Jsoup.parse(page).select("body > div > div.container > div.content > div > div:nth-child(2) > div.group-left > div > div.bd > div.table-outer > div.table-box > table > tbody > tr > td");
+ location = tds.get(1).text().replace("中国", "") + " " + tds.get(3).text().trim();
+ }catch (IOException e){
+ log.error("获取ip地址信息失败: {}", e.getMessage());
+ location = "unknown";
}
- SubUpdateRecord subUpdateRecord = new SubUpdateRecord(0, subBind.getUser(), ip, UA, new Date(), location.toString().trim());
+ SubUpdateRecord subUpdateRecord = new SubUpdateRecord(0, subBind.getUser(), ip, UA, new Date(), location);
subMapper.insertSubUpdateRecord(subUpdateRecord);
if(subMapper.selectUpdateRecordCount(subBind.getUser()) > 10)
subMapper.deleteSubUpdateRecordById(subMapper.selectMinUpdateRecordId(subBind.getUser()));
diff --git a/src/main/java/com/lion/lionwebsite/Util/GalleryUtil.java b/src/main/java/com/lion/lionwebsite/Util/GalleryUtil.java
index fc30007..fc3f84f 100644
--- a/src/main/java/com/lion/lionwebsite/Util/GalleryUtil.java
+++ b/src/main/java/com/lion/lionwebsite/Util/GalleryUtil.java
@@ -276,8 +276,10 @@ public class GalleryUtil {
headers.put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0");
headers.put("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
- headers.put("Upgrade-Insecure-Requests", "1");
- headers.put("Cookie", "ipb_member_id=5774855; ipb_pass_hash=4b061c3abe25289568b5a8e0123fb3b9; igneous=cea2e08fb; sk=oye107wk02gtomb56x65dmv4qzbn; nw=1");
+ if(url.contains("hentai")) {
+ headers.put("Cookie", "ipb_member_id=5774855; ipb_pass_hash=4b061c3abe25289568b5a8e0123fb3b9; igneous=cea2e08fb; sk=oye107wk02gtomb56x65dmv4qzbn; nw=1");
+ headers.put("Upgrade-Insecure-Requests", "1");
+ }
if(method.equals(GET)){
HttpGet httpGet = new HttpGet(url);