获取微信服务器IP信息

package demo;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

/**
 * 获取微信服务器ip
 * @author pxh
 *2016-12-07
 */
public class GetServiceIp {
    private static String urlPath = "https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=";
    private static String token = 令牌;
    
    public static String getIps(){
        String ips = null;
        try {
            URL url = new URL(urlPath+token);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            //设置链接超时时间
            connection.setConnectTimeout(30*1000);
            //设置读取超时时间
            connection.setReadTimeout(30*1000);
            //设置请求方式
            connection.setRequestMethod("GET");
            connection.setDoInput(true);
            
            connection.connect();
            InputStream is = connection.getInputStream();
            int size = is.available();
            byte[] message = new byte[size];
            is.read(message);
            ips = new String(message,"UTF-8");
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ips;
    }
    
    public static void main(String[] args) {
        String ipJson = GetServiceIp.getIps();
        System.out.println("微信服务器ip:"+ipJson);
        List<String> listIps = new ArrayList<String>();
        /**
         * 使用gosn解析json
         */
        JsonObject jsonObject = new JsonParser().parse(ipJson).getAsJsonObject();
        JsonArray jsonArray = jsonObject.getAsJsonArray("ip_list");
        Gson gson = new Gson();
        for(JsonElement element : jsonArray){
            String ip = gson.fromJson(element, String.class);
            if(null != ip && !"".equals(ip) && ip.contains("/")){ //"58.251.80.32\/27"  因为微信获取的ip中有这种格式的数据所以进行了如下处理
                int startindex =ip.indexOf("/");
                listIps.add(ip.substring(0,startindex));
                listIps.add(ip.substring(0,ip.lastIndexOf(".")+1)+ip.substring(startindex+1));
            }else{
                listIps.add(ip);
            }
        }
        
        
    }
    
}

时间: 2024-10-12 23:45:21

获取微信服务器IP信息的相关文章

Delphi XE7 用indy开发微信公众平台(2)- 获取微信服务器IP地址

获取微信服务器IP地址 const ServerIpUrl = 'https://api.weixin.qq.com/cgi-bin/getcallbackip?&access_token=%s'; procedure GetServerList(out List: TStringList; AccessToken: String); var Url: string; J: TJSONObject; temp: String; begin Url := Format(ServerIpUrl, [

微信开发之(三)获取微信服务器IP地址

官方文档解析:获取微信服务器IP地址 在上面的官方文档中我们可以直接在最浏览器里面进行测试例如: 请求访问这个地址,前提是已经获得了access_token的值上篇已获得:https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN   是否必须 说明 access_token 是 公众号的access_token C#代码(access_token的值见上一篇的获取方法): /// <summary> //

微信公众号平台接口开发:基础支持,获取微信服务器IP地址

官方说明 目前看不出来这个接口有哪些具体运用,但是既然有这个接口,那我们就试试能不能用 访问接口 修改WeCharBase.cs,新增以下2个方法 1 public static string ServerIPs 2 { 3 get { return GetServerIPs(); } 4 } 5 6 /// <summary>获取所有服务器IP</summary> 7 /// <returns></returns> 8 private static str

获取微信服务器IP地址

关键字:微信公众平台 微信服务器 IP地址 如果公众号基于安全等考虑,需要获知微信服务器的IP地址列表,以便进行相关限制,可以通过该接口获得微信服务器IP地址列表. 接口调用请求说明 http请求方式: GET https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN 参数说明 参数 是否必须 说明 access_token 是 公众号的access_token 返回说明 正常情况下,微信会返回下述JSON

java 获取微信服务器ip

public static String getIp(String accessToken){ String result = null; String requestUrl = "https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN"; requestUrl = requestUrl.replace("ACCESS_TOKEN", accessToken); System

python之获取微信服务器的ip地址

# -*- coding: cp936 -*- #PYTHON 27 #xiaodeng #获取微信服务器的ip地址 import urllib url='https://api.weixin.qq.com/cgi-bin/getcallbackip' data={'access_token':'VchuOKNr8X9tZVDrY_yG9qiJus_1nO1a7uT_iwWVwgGFdzPhPyaqreTE_qMKPas4SwRNif5k0A1zVw6Y9eTPI4CAYiUwpJvHdBt4f

Java获取当前服务器IP实现

package hope.ipaddress.demo; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; /** * 获取当前服务器IP * @author hp * */ public class IpDemo { /** * @param args */ public static void

关于Java获取本地服务器IP的问题

Java获取本地服务器IP,我们最简单的写法: import java.net.InetAddress; public class CatchIp{ public static void main(String[] args) { try { // 获取IP地址 String ip = InetAddress.getLocalHost().getHostAddress(); System.out.println("IP地址:"+ip); } catch (Exception e) {

python学习之最简单的获取本机ip信息的小程序

文章是从我的个人博客粘贴过来的,大家可以直接访问我的个人博客哦 http://www.iwangzheng.com 获取本机ip信息的命令ifconfig总是在用,这次拿到pyhton代码里,感觉python好麻烦啊,每次都要import. 可以在程序里直接read出来,也可以先在命令行执行ifconfig > xx.txt,这样可以直接访问倒入后的文本信息. 这个小程序有个问题,与朋友讨论了还没解决彻底,如果用findall是可以匹配所有的,但是怎么解决用match只匹配一次的问题呢,当然如果