เมื่อไม่กี่วันก่อน ฉันต้องการเพิ่มฟังก์ชันเพื่อวิเคราะห์ตำแหน่งทางภูมิศาสตร์ของที่อยู่ IP ในแบ็กเอนด์ของเว็บไซต์ ฉันอ่านบล็อกบนอินเทอร์เน็ตและพบบางโปรแกรม แต่ฉันมักจะรู้สึกว่าการเขียนไม่กระชับ เพียงพอและรู้สึกละเอียด โปรแกรมด้านล่างดูเหมือนค่อนข้างง่าย ดังนั้นฉันจึงจัดเรียงและแก้ไขมัน สามารถใช้งานได้ อย่างไรก็ตาม สตริงที่ส่งคืนโดยเว็บไซต์ทั้งสองนี้ รูปแบบจะแตกต่างกันบ้างและต้องแยกวิเคราะห์แยกกัน
สตริงสาธารณะ getAddressByIP(){ ลอง { String strIP = "0.0.0.0"; URLConnection conn = url.openConnection(); BufferedReader reader = ใหม่ BufferedReader(new InputStreamReader(conn.getInputStream(), "GBK")); null; StringBuffer result = new StringBuffer() ในขณะที่ ((line = reader.readLine()) != null) { result.append(line); } reader.close(); "ตำแหน่งของ IP นี้คือ:" )); strIP = strIP.substring(strIP.indexOf( ///) + 1); String Province = strIP.substring(6, strIP.indexOf("จังหวัด")); String city = strIP.substring(strIP.indexOf("จังหวัด") + 1, strIP.indexOf("เมือง")); } catch(IOException e) { กลับ "อ่านล้มเหลว" }}
ที่แนบมา:
อินเทอร์เฟซ Sina: http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=
อินเทอร์เฟซ Taobao: http://ip.taobao.com/service/getIpInfo.php?ip=[สตริงที่อยู่ IP]