IPQualityScore's Mobile SDK allows your Android app to easily integrate our Proxy Detection API. Perform advanced IP Reputation checks from the leader in IP Intelligence to analyze the risk associated with an IP address.
To use the IP Address Reputation portion of our SDK framework, please follow the Download, Gradle Setup and App Integration steps of the IPQS Mobile Device Fingerprinting SDK Documentation. Once the IPQS library is integrated into your build, you can begin making IP Reputation checks via our API.
Perform a lookup for any given IP address by calling upon Proxy.performFraudCheck(). This portion of the SDK does not require that you have set access to context, unless you need to display something to the user. Additional permissions are not required.
The ProxyRequest object has the following methods/functions.
|setUserAgent||request.setUserAgent("useragent")||The user agent from the web browser of this or any device.||String|
|setUserLanguage||request.setUserLanguage("en")||The two character language this user prefers.||String|
|setFast||request.setFast(true)||Should this request be optimized for speed. Makes results faster, but less accurate.||Boolean, defaults to false|
|setMobile||request.setMobile(true)||Should this request presume the IP is for a mobile device?||Boolean, defaults to false|
|setAllowPublicAccessPoints||request.setAllowPublicAccessPoints(true)||Some public access points like airports and coffee shops can be dangerous. This flag allows you to ignore those dangers when scoring. Useful if your userbase is frequently utilizing your app from coffee shops or airports.||Boolean, defaults to false|
|setLighterPenalties||request.setLighterPenalties(true)||Tell our system to score issues with IP addresses more lightly. Keeps out the worst subset of users.||Boolean, defaults to false|
|setIP||request.setIP("18.104.22.168")||Sets the IP address to lookup. This field is required to make the request successfully.||String, IPv4 or IPv6|
|setTransactionStrictness||request.setTransactionStrictness(1)||Sets the transaction strictness for this request. If you are submitting order data this can be useful.||Integer, 0 - 3|
|setCustom||request.setCustom("custom", "value")||Allows you to set custom variables to be passed to our API. For a full list of possible variables click here||String, String|
IPQS's Mobile SDK offers a wide range of result methods/functions to enhance your experience and help prevent fraudulent activity. The variable "result" below signifies an object of com.ipqualityscore.FraudEngine.Results.ProxyResult.
|getRaw||result.getRaw()||Get the raw json string response from our API. This can be useful for debugging purposes, providing feedback and long term storage.||String|
|getMessage||result.getMessage()||Get the response message string for this request. This is generally 'Success', but can include administrator level information on why a request failed. (Out of credits, etc...)||String|
|getSuccess||result.getSuccess()||A boolean containing the request's success or failure status. True on success, false on failure.||Boolean|
|getRequestID||result.getRequestID()||The unique ID associated with this request. Helpful for debugging and postbacks.||String|
|getFraudScore||result.getFraudScore()||Number 0 - 100 describing how likely this IP is to commit fraud. 0 being not at all, 100 being definitively fraud. We suggest blocking users greater than 85.||Float|
|getCountryCode||result.getCountryCode()||A two character country code based on this user's IP address.||String|
|getRegion||result.getRegion()||A string describing the region this user's IP is from.||String|
|getCity||result.getCity()||A string describing the city this user's IP is from.||String|
|getISP||result.getISP()||A string describing the ISP this user's IP belongs to.||String|
|getOrganization||result.getOrganization()||A string describing the Organization this user's IP belongs to.||String|
|getASN||result.getASN()||The ASN assigned to the ISP this user's IP belongs to.||Integer|
|getLatitude||result.getLatitude()||The latitude this user's IP is at.||Float|
|getLongitude||result.getLongitude()||The longitude this user's IP is at.||Float|
|getIsCrawler||result.getIsCrawler()||Returns true if this user's IP is from a known search engine crawler.||Boolean|
|getTimezone||result.getTimezone()||Returns the timezone this user's IP is from.||String|
|getHost||result.getHost()||Returns the hostname of this user's IP address.||String|
|getIsProxy||result.getIsProxy()||Returns true if this user's IP is a known proxy.||Boolean|
|getIsVPN||result.getIsVPN()||Returns true if this user's IP is a known VPN.||Boolean|
|getIsTOR||result.getIsTOR()||Returns true if this user's IP is a known or suspected TOR node.||Boolean|
|getRecentAbuse||result.getRecentAbuse()||Returns true if this user's IP has been reported for being abusive recently or if this device has been seen preforming abusive actions.||Boolean|
|getBotStatus||result.getBotStatus()||Returns true if this user's IP has been reported for botting or if this device has been seen preforming bot like actions.||Boolean|
|getConnectionType||result.getConnectionType()||Classification of the IP address connection type as "Residential", "Corporate", "Education", "Mobile", or "Data Center".||String|
|getMobile||result.getMobile()||Returns true if the IP in question is likely a mobile device.||Boolean|
|getOperatingSystem||result.getOperatingSystem()||The suspected operating system of the device connected to this IP address.||String|
|getBrowser||result.getBrowser()||The suspected web browser of the device connected to this IP address based on the user_agent if provided.||String|
|getDeviceModel||result.getDeviceModel()||The suspected device model of the device connected to this IP address based on the user_agent if provided.||String|
|getDeviceBrand||result.getDeviceBrand()||The suspected device brand of the device connected to this IP address based on the user_agent if provided.||String|