with IP2Proxy and OpenSRS?
Emit new event when the DNS/ZONE check has passed or failed at the registry. See the documentation
Emit new event for each new domain registration. See the documentation
Emit new event when the status of a domain transfer changes. See the documentation
Query IP address using IP2Proxy API. See the docs here for how to use this API.
Initiate a domain transfer to OpenSRS. See the documentation
Update DNS records for a specified domain. See the documentation
The IP2Proxy API helps you detect and prevent fraud by identifying proxy and VPN traffic. With this API, you can programmatically check IP addresses and uncover whether they're originating from known data centers, residential proxies, or public VPNs. This is crucial for maintaining the integrity of your web services and preventing abuse. By integrating IP2Proxy with Pipedream, you can automate actions based on the traffic’s legitimacy, enrich data streams with proxy detection, and enhance security measures within your digital ecosystem.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
ip2proxy: {
type: "app",
app: "ip2proxy",
},
ip: {
type: "string",
default: "201.42.237.89"
},
package: {
type: "string",
default: "PX11"
}
},
async run({steps, $}) {
return await axios($, {
url: `https://api.ip2proxy.com`,
params: {
key: `${this.ip2proxy.$auth.api_key}`,
ip: `${this.ip}`,
},
})
},
})
import { axios } from "@pipedream/platform";
import crypto from 'crypto';
export default defineComponent({
props: {
opensrs: {
type: "app",
app: "opensrs",
}
},
async run({steps, $}) {
const connectionDetails = {
reseller_username: this.opensrs.$auth.reseller_username,
api_key: this.opensrs.$auth.api_key,
api_host_port: this.opensrs.$auth.api_host_port
};
//Payload of the request
const xml = `<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">LOOKUP</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">${this.opensrs.$auth.domain}</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>`;
// Generate signature
const generateSignature = (xml, apiKey) => {
let md5 = crypto.createHash('md5');
md5.update(xml + apiKey);
let firstHash = md5.digest('hex');
md5 = crypto.createHash('md5');
md5.update(firstHash + apiKey);
return md5.digest('hex');
};
const signature = generateSignature(xml, connectionDetails.api_key);
// Prepare and call OpenSRS API
const headers = {
'Content-Type': 'text/xml',
'X-Username': connectionDetails.reseller_username,
'X-Signature': signature
};
return await axios($, {
method: "POST",
url: connectionDetails.api_host_port,
headers,
data: xml
});
},
})