iP查詢接口

iP查詢接口支持HTTPS(贈送1000次)

簡介:獲取iP地址對應的省市區以及運營商名稱

已連接應用數:7

産品服務支持美元、港幣、USDT支付

接口地址

http協議:
http://api.youripapi.com/ip/

https協議:
https://api.youripapi.com/ip/

* API接口可能會因為各種網絡原因和攻擊都可能産生阻斷,請開發時做好冗餘和異常處理

* 當HTTP請求返回的狀態碼非200時,請做異常處理,比如 202 狀態碼造成的原因可能是無效Token、餘額不足、格式錯誤

javascript調用iP查詢接口示例:

方法一

                                function ajax(params){
                                    params = params||{};
                                    if (!params.url) {
                                        throw new Error('Necessary parameters are missing.'); //必要參數未填
                                    }
                                    var random = +new Date;
                                    var hander = null;
                                    var options = {
                                        url: '',                                //接口地址
                                        type: 'GET',                            //請求方式
                                        timeout: 5000,                          //超時等待時間
                                        cache: true,                            //緩存 
                                        async: true,                            //是否異步
                                        xhrFields: {},                          //設置XHR對象屬性鍵值對。如果需要,可設置withCredentials為true的跨域請求。
                                        dataType: 'json',                       //請求的數據類型
                                        data: {},                               //參數
                                        jsonp: 'callback',                      //傳遞請求完成後的函數名
                                        jsonpCallback: 'jsonp_' + random,       //請求完成後的函數名
                                        error: function() {},                   //請求失敗後調用
                                        success: function(){},                  //請求成功後調用
                                        complete: function(){}                  //請求完成後調用
                                    };
                                    var formatParams = function(json) {
                                        var arr = [];
                                        for(var i in json) {
                                            arr.push(encodeURIComponent(i) + '=' + encodeURIComponent(json[i]));
                                        }
                                        return arr.join("&");
                                    };
                                    for(var i in params){
                                        switch(i){
                                            case 'type':
                                                options[i] = params[i].toUpperCase();
                                                break;
                                            case 'dataType':
                                                options[i] = params[i].toLowerCase();
                                                break;
                                            default:
                                                options[i] = params[i];
                                        }
                                    }
                                    if(typeof options.data =='object'){
                                        options.data = formatParams(options.data);
                                    }
                                    if(options.dataType=='jsonp'){
                                        options.cache = params.cache||false;
                                        //插入動態腳本及回調函數
                                        var $head = document.getElementsByTagName('head')[0];
                                        var $script = document.createElement('script');
                                        $head.appendChild($script);
                                        window[options.jsonpCallback] = function (json) {
                                            $head.removeChild($script);
                                            window[options.jsonpCallback] = null;
                                            hander && clearTimeout(hander);
                                            options.success(json);
                                            options.complete();
                                        };
                                        //發送請求
                                        if(options.cache){
                                            options.data += options.data?'&_'+random:'_'+random;
                                        }
                                        options.data += '&'+options.jsonp+'='+options.jsonpCallback;
                                        $script.src = (options.url + '?' + options.data).replace('?&','?');
                                        //超時處理
                                        hander = setTimeout(function(){
                                            $head.removeChild($script);
                                            window[options.jsonpCallback] = null;
                                            options.error();
                                            options.complete();
                                        }, options.timeout);
                                    }else{
                                        if(options.cache){
                                            options.data += options.data?'&_'+random:'_'+random;
                                        }
                                        //創建xhr對象
                                        var xhr = new (self.XMLHttpRequest||ActiveXObject)("Microsoft.XMLHTTP");
                                        if(!xhr){
                                            return false;
                                        }
                                        //發送請求
                                        if (options.type == 'POST') {
                                            xhr.open(options.type, options.url, options.async);
                                            xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
                                        }else{
                                            options.url += options.url.indexOf('?')>-1?'&'+options.data:'?'+options.data;
                                            xhr.open(options.type, options.url, options.async);
                                            options.data = null;
                                        }
                                        if(options.xhrFields){
                                            for(var field in options.xhrFields){
                                                xhr[field]= options.xhrFields[field];
                                            }
                                        }
                                        xhr.send(options.data);
                                        //超時處理
                                        var requestDone = false;
                                        hander = setTimeout(function() {
                                            requestDone = true;
                                            if(xhr.readyState != 4){
                                                xhr.abort();
                                                options.error();
                                            }
                                            options.complete();
                                        }, options.timeout);
                                        //狀態處理
                                        xhr.onreadystatechange = function(){
                                            if(xhr.readyState == 4&&!requestDone) {
                                                if(xhr.status>=200 && xhr.status<300||xhr.status == 304) {
                                                    var data = options.dataType == "xml" ? xhr.responseXML : xhr.responseText;
                                                    if (options.dataType == "json") {
                                                        try{
                                                            data =  JSON.parse(data);
                                                        }catch(e){
                                                            data = eval('(' + data + ')');
                                                        }
                                                    }
                                                    options.success(data);
                                                } else {
                                                    options.error();
                                                }
                                                hander && clearTimeout(hander);
                                                options.complete();
                                            }
                                        };
                                    }
                                }

                                ajax({
                                    'url':'https://api.youripapi.com/ip/',
                                    'data':{            //默認自動添加callback參數
                                        'ip':'8.8.8.8', //為空即為當前iP地址
                                        'oid':'35553',
                                        'mid':'2',
                                        'token':'00d5cb1fac5dc5cbfe2ff218292a2dfd33'  //不安全,請定期更新token,建議進行文件壓縮
                                    },
                                    'dataType':'jsonp',
                                    'success':function(json){
                                        console.log(json);
                                    }
                                });
                                

方法二(jQuery)

                                $.ajax({
                                    'url':'https://api.youripapi.com/ip/',
                                    'data':{            //默認自動添加callback參數
                                        'ip':'8.8.8.8', //為空即為當前iP地址
                                        'oid':'35553',
                                        'mid':'2',
                                        'token':'00d5cb1fac5dc5cbfe2ff218292a2dfd33'  //不安全,請定期更新token,建議進行文件壓縮
                                    },
                                    'dataType':'jsonp',
                                    'success':function(json){
                                        console.log(json);
                                    }
                                });