Hace unos días quise agregar una función para analizar la ubicación geográfica de la dirección IP en el backend del sitio web. Leí algunos blogs en Internet y encontré algunos programas, pero siempre sentí que la escritura no era concisa. suficiente y me sentí prolijo. El siguiente programa parece bastante simple, así que lo solucioné y lo depuré. Se puede usar. El programa llama a la interfaz proporcionada por "Tencent IP Sharing Plan". Por supuesto, también se puede cambiar a la interfaz proporcionada por ip138. Sin embargo, las cadenas devueltas por estos dos sitios web Los formatos son algo diferentes y deben analizarse por separado.
cadena pública getAddressByIP(){ prueba { Cadena strIP = "0.0.0.0"; URL URL = nueva URL ("http://ip.qq.com/cgi-bin/searchip?searchip1=" + conexión URLConnection); url.openConnection(); lector BufferedReader = nuevo BufferedReader(new InputStreamReader(conn.getInputStream(), "GBK")); nulo; resultado de StringBuffer = nuevo StringBuffer(); while((line = lector.readLine()) != null) { resultado.append(line } lector.close(); resultado.substring(result.indexOf(); "La ubicación de esta IP es:" )); strIP = strIP.substring(strIP.indexOf( ":") + 1 String provincia = strIP.substring(6, strIP.indexOf("provincia")); String ciudad = strIP.substring(strIP.indexOf("provincia") + 1, strIP.indexOf("ciudad")); } catch(IOException e) { return "Error de lectura" }}
Adjunto:
Interfaz Sina: http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=
Interfaz de Taobao: http://ip.taobao.com/service/getIpInfo.php?ip=[cadena de dirección IP]