有些时候,我们需要获取微信服务器的IP地址列表 这样的作用是开发者可以处于安全考虑,通过IP来判断是否是他人伪造数据 接口:https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN 参数只需要一个:公众号的access_token 成功返回:
{
"ip_list":["127.0.0.1","127.0.0.1"]
}
Code language: JSON / JSON with Comments (json)
失败返回:
{"errcode":40013,"errmsg":"invalid appid"}
Code language: JSON / JSON with Comments (json)
获取IP列表的实现
我们首先添加一个实体 为了方便使用,我们将上一集的获取tokeninfo封装成一个方法
public class Ip_listInfo
{
public string[] ip_list { set; get; }
public string errcode { set; get; }
public string errmsg { set; get; }
}
Code language: JavaScript (javascript)
private Access_token_info GetTokenInfo()
{
string url = string.Format(urlFormat, appID, appSecret);
string json = Tool.GetHtml(url);
Access_token_info obj = Tool.ReadJson<Access_token_info>(json);
return obj;
}
Code language: PHP (php)
try
{
Access_token_info obj = GetTokenInfo();//先获取token信息
if (string.IsNullOrEmpty(obj.errcode))
{
string url = string.Format("[https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token={0}](https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token={0})", obj.access_token);
string json = Tool.GetHtml(url);
Ip_listInfo listInfo = Tool.ReadJson<Ip_listInfo>(json);//获取ip列表
this.labelRes.Text = "Ip个数:" + listInfo.ip_list.Count() + " 第一个:" + listInfo.ip_list[0];
}
else
{
this.labelRes.Text = obj.errcode + " " + obj.errmsg;
}
}
catch (Exception ex)
{
this.labelRes.Text = ex.Message;
}
Code language: JavaScript (javascript)