Java代码:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class GetIPByPhoneNumber {

    public static void main(String[] args) throws Exception {
        String phoneNumber = "手机号码";
        String ip = getIPByPhoneNumber(phoneNumber);
        System.out.println(ip);
    }

    public static String getIPByPhoneNumber(String phoneNumber) throws Exception {
        String url = "https://www.ip138.com/mobile.asp?mobile=" + phoneNumber;
        URLConnection conn = new URL(url).openConnection();
        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "GBK"));
        String line;
        StringBuilder sb = new StringBuilder();
        while ((line = reader.readLine()) != null) {
            sb.append(line);
        }
        reader.close();
        String content = sb.toString();
        Pattern pattern = Pattern.compile("\\[(\\d+\\.\\d+\\.\\d+\\.\\d+)\\]");
        Matcher matcher = pattern.matcher(content);
        if (matcher.find()) {
            return matcher.group(1);
        } else {
            return null;
        }
    }
}

Python代码:

import requests
import re

def get_ip_by_phone_number(phone_number):
    url = 'https://www.ip138.com/mobile.asp?mobile=' + phone_number
    headers = {
        'Referer': 'https://www.ip138.com/',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    }
    response = requests.get(url, headers=headers)
    response.encoding = 'gbk'
    content = response.text
    pattern = re.compile('\\[(\\d+\\.\\d+\\.\\d+\\.\\d+)\\]')
    match = pattern.search(content)
    if match:
        return match.group(1)
    else:
        return None

if __name__ == '__main__':
    phone_number = '手机号码'
    ip = get_ip_by_phone_number(phone_number)
    print(ip)

解决java.net.UnknownHostException: message:unexpected_referer}_GetZoneResult = { }报错:

这个报错是因为网站的反爬虫机制,需要在请求头中添加 Referer 参数,表示请求来源。修改Java代码如下:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class GetIPByPhoneNumber {

    public static void main(String[] args) throws Exception {
        String phoneNumber = "手机号码";
        String ip = getIPByPhoneNumber(phoneNumber);
        System.out.println(ip);
    }

    public static String getIPByPhoneNumber(String phoneNumber) throws Exception {
        String url = "https://www.ip138.com/mobile.asp?mobile=" + phoneNumber;
        URLConnection conn = new URL(url).openConnection();
        conn.setRequestProperty("Referer", "https://www.ip138.com/");
        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "GBK"));
        String line;
        StringBuilder sb = new StringBuilder();
        while ((line = reader.readLine()) != null) {
            sb.append(line);
        }
        reader.close();
        String content = sb.toString();
        Pattern pattern = Pattern.compile("\\[(\\d+\\.\\d+\\.\\d+\\.\\d+)\\]");
        Matcher matcher = pattern.matcher(content);
        if (matcher.find()) {
            return matcher.group(1);
        } else {
            return null;
        }
    }
}
``
在公网上根据手机号获取对方IP用Java和python各写一个程序javanetUnknownHostException messageunexpected_referer__GetZoneResult_ = 解决此报错

原文地址: http://www.cveoy.top/t/topic/eDxc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录