landing page done
|
@ -1,2 +1,3 @@
|
|||
node_modules
|
||||
ip_ranges
|
||||
ip_ranges
|
||||
**/dist
|
|
@ -1,2 +1,3 @@
|
|||
node_modules
|
||||
ip_ranges
|
||||
ip_ranges
|
||||
**/dist
|
|
@ -11,11 +11,16 @@
|
|||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@fastify/cors": "^9.0.1",
|
||||
"@fastify/helmet": "^11.1.1",
|
||||
"@fastify/rate-limit": "^9.1.0",
|
||||
"@fastify/static": "^7.0.4",
|
||||
"axios": "^1.6.8",
|
||||
"csv": "^6.3.9",
|
||||
"csv-parser": "^3.0.0",
|
||||
"csv-writer": "^1.6.0",
|
||||
"fastify": "^4.27.0",
|
||||
"gulp": "^5.0.0",
|
||||
"ip": "^2.0.1",
|
||||
"ip-address": "^9.0.5",
|
||||
"lodash": "^4.17.21",
|
||||
|
|
14
server.js
|
@ -2,11 +2,21 @@ import Fastify from "fastify";
|
|||
import helmet from "@fastify/helmet";
|
||||
import rateLimit from "@fastify/rate-limit";
|
||||
import cors from "@fastify/cors";
|
||||
import fastifyStatic from "@fastify/static";
|
||||
import path from "path";
|
||||
import { fileURLToPath } from "url";
|
||||
|
||||
import { checkIp } from "./checkIp.js";
|
||||
|
||||
const fastify = Fastify();
|
||||
|
||||
await fastify.register(helmet);
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
await fastify.register(fastifyStatic, {
|
||||
root: path.join(__dirname, "./web/landing/dist"),
|
||||
});
|
||||
await fastify.register(helmet, {
|
||||
contentSecurityPolicy: false,
|
||||
noSniff: false,
|
||||
});
|
||||
|
||||
await fastify.register(rateLimit, {
|
||||
max: (request) => (request.headers["x-api-key"] ? 100 : 1),
|
||||
|
|
After Width: | Height: | Size: 490 KiB |
After Width: | Height: | Size: 428 KiB |
After Width: | Height: | Size: 431 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 281 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1 @@
|
|||
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
|
After Width: | Height: | Size: 364 KiB |
After Width: | Height: | Size: 126 KiB |
|
@ -0,0 +1,154 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Blog</title>
|
||||
@@include('../meta.html') @@include('../link_deps.html')
|
||||
</head>
|
||||
<body class="bg-base-200 flex flex-col items-center min-h-screen">
|
||||
@@include('../nav.html')
|
||||
<div class="flex-grow w-full max-w-4xl px-4 py-10">
|
||||
<h1 class="text-5xl font-bold mb-6 text-base-content">
|
||||
Why Do Data Center IPs Matter?
|
||||
</h1>
|
||||
<img class="mb-6" src="/assets/bot-detection.webp" />
|
||||
|
||||
<p class="mb-6 object-cover text-base-content">
|
||||
Data center IPs are essential components of the internet's
|
||||
infrastructure. For software engineers, understanding the significance
|
||||
of these IPs is crucial for enhancing cybersecurity, improving website
|
||||
performance, and preventing malicious activities. This article explores
|
||||
the importance of data center IPs, their impact on cybersecurity, and
|
||||
the benefits of monitoring and managing them effectively.
|
||||
</p>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
What Are Data Center IPs?
|
||||
</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
Data center IPs are IP addresses assigned to servers within data
|
||||
centers. These servers host websites, store data, and run various
|
||||
applications. Managing and monitoring these IP addresses is essential
|
||||
for maintaining the integrity and security of online services.
|
||||
</p>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
The Importance of Bot Detection
|
||||
</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
Bots can be beneficial, like search engine crawlers, or harmful, like
|
||||
those used for DDoS attacks and data scraping. Detecting and managing
|
||||
data center IPs is vital for identifying malicious bots and preventing
|
||||
them from causing harm.
|
||||
</p>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
Impact on Cybersecurity
|
||||
</h2>
|
||||
<ul class="list-disc list-inside mb-6 text-base-content">
|
||||
<li class="mb-2">
|
||||
<strong>Prevent Data Theft:</strong> Malicious bots often use data
|
||||
center IPs to steal sensitive information. Monitoring these IPs helps
|
||||
identify and block such threats.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Reduce Spam and Fraud:</strong> Bots can generate spam and
|
||||
fraudulent activities. By tracking data center IPs, engineers can
|
||||
reduce spam and protect their systems from fraud.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Improve Website Performance:</strong> Unchecked bots can
|
||||
consume server resources, slowing down website performance. Effective
|
||||
IP management ensures optimal performance by minimizing unwanted
|
||||
traffic.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
Benefits of Monitoring Data Center IPs
|
||||
</h2>
|
||||
<ul class="list-disc list-inside mb-6 text-base-content">
|
||||
<li class="mb-2">
|
||||
<strong>Enhanced Security:</strong> Regular monitoring of data center
|
||||
IPs helps in early detection of potential threats, enhancing overall
|
||||
security.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Accurate Traffic Analysis:</strong> Understanding the source
|
||||
of your web traffic allows for better analysis and insights, helping
|
||||
you distinguish between human users and automated bots.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Improved User Experience:</strong> By blocking malicious bots,
|
||||
you can ensure a smoother and more secure user experience on your
|
||||
website.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
Practical Insights and Best Practices
|
||||
</h2>
|
||||
<ul class="list-disc list-inside mb-6 text-base-content">
|
||||
<li class="mb-2">
|
||||
<strong>Use IP Detection Tools:</strong> Implement tools and APIs that
|
||||
provide real-time data on data center IPs. These tools can help in
|
||||
quickly identifying and blocking malicious traffic.
|
||||
</li>
|
||||
<ul class="list-disc list-inside mb-6 text-base-content">
|
||||
<li class="mb-2">
|
||||
Example: Use services like MaxMind or IP2Location to get detailed
|
||||
information about IP addresses.
|
||||
</li>
|
||||
</ul>
|
||||
<li class="mb-2">
|
||||
<strong>Regular Updates:</strong> Ensure that your IP detection
|
||||
databases are regularly updated to include new and removed data center
|
||||
IPs.
|
||||
</li>
|
||||
<ul class="list-disc list-inside mb-6 text-base-content">
|
||||
<li class="mb-2">
|
||||
Example: Automate updates to your IP list using cron jobs or
|
||||
scheduled tasks.
|
||||
</li>
|
||||
</ul>
|
||||
<li class="mb-2">
|
||||
<strong>Rate Limiting:</strong> Apply rate limiting to control the
|
||||
number of requests from a single IP address, preventing overload from
|
||||
automated scripts.
|
||||
</li>
|
||||
<ul class="list-disc list-inside mb-6 text-base-content">
|
||||
<li class="mb-2">
|
||||
Example: Implement rate limiting in your web server configuration
|
||||
(e.g., Nginx, Apache) or using middleware in your application (e.g.,
|
||||
Express.js for Node.js).
|
||||
</li>
|
||||
</ul>
|
||||
<li class="mb-2">
|
||||
<strong>CAPTCHAs and User Verification:</strong> Use CAPTCHAs and
|
||||
other verification methods to ensure that the requests are coming from
|
||||
legitimate users.
|
||||
</li>
|
||||
<ul class="list-disc list-inside mb-6 text-base-content">
|
||||
<li class="mb-2">
|
||||
Example: Integrate Google's reCAPTCHA or hCaptcha to differentiate
|
||||
between human and bot traffic.
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">Conclusion</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
Data center IPs are a critical aspect of internet infrastructure,
|
||||
playing a significant role in cybersecurity and website performance. By
|
||||
understanding their importance and implementing effective monitoring and
|
||||
management strategies, software engineers can protect their systems from
|
||||
malicious bots, improve traffic analysis, and enhance user experience.
|
||||
Regularly updating IP databases, using detection tools, and employing
|
||||
best practices like rate limiting and user verification are essential
|
||||
steps in managing data center IPs effectively.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@include('../price_card.html') @@include('../footer.html')
|
||||
@@include('../script_deps.html')
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,96 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Blog</title>
|
||||
@@include('../meta.html') @@include('../link_deps.html')
|
||||
</head>
|
||||
<body class="bg-base-200 flex flex-col items-center min-h-screen">
|
||||
@@include('../nav.html')
|
||||
<div class="flex-grow w-full max-w-4xl px-4 py-10">
|
||||
<h1 class="text-5xl font-bold mb-6 text-base-content">
|
||||
Comparing Bots Detection Methods
|
||||
</h1>
|
||||
|
||||
<img class="mb-6" src="/assets/compare.webp" />
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">Static IP Lists</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
Static IP lists are one of the simplest methods for detecting data
|
||||
center IPs. They are easy to implement and cost-effective since they can
|
||||
be maintained in-house. However, they require regular updates to stay
|
||||
current, as data centers frequently change their IP addresses. This
|
||||
method can quickly become outdated, leading to limited accuracy and
|
||||
potential scalability issues as the list grows.
|
||||
</p>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
Third-Party IP Databases
|
||||
</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
Third-party IP databases offer comprehensive coverage and are usually
|
||||
maintained and updated by the provider. This ensures a wider range of IP
|
||||
addresses and more reliable updates than static lists. However, they can
|
||||
be expensive, and you depend on the provider for accuracy and timely
|
||||
updates. There may also be latency in reflecting recent changes in data
|
||||
center IPs.
|
||||
</p>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
Machine Learning Models
|
||||
</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
Machine learning models are highly advanced and adaptable. They can
|
||||
learn and respond to new patterns and data, offering high accuracy in
|
||||
detecting data center IPs. However, these models require significant
|
||||
expertise to develop and maintain, and they demand substantial
|
||||
computational resources. Additionally, they can be costly to implement
|
||||
and are best suited for situations requiring near-perfect detection.
|
||||
</p>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
Real-Time IP Detection APIs (Your API)
|
||||
</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
Our Real-Time IP Detection API provides a balanced approach, offering
|
||||
real-time accuracy by reflecting immediate changes in data center IPs.
|
||||
It is easy to integrate with existing systems through simple API calls
|
||||
and scales well to handle large volumes of requests. This method reduces
|
||||
the burden of maintaining IP lists or developing complex models and
|
||||
ensures high accuracy with up-to-date information directly from the
|
||||
source.
|
||||
</p>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
Why Choose Our API?
|
||||
</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
While advanced tools like machine learning and fingerprinting offer
|
||||
superior accuracy, they come at a high cost and complexity. If your
|
||||
primary goal is to prevent bots from sending requests to your servers or
|
||||
stealing your content, our API offers more than enough functionality. It
|
||||
is cost-effective, highly accurate for practical purposes, and easy to
|
||||
use, providing real-time updates without the need for complex and
|
||||
expensive solutions.
|
||||
</p>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">Conclusion</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
Selecting the right method for detecting data center IPs depends on your
|
||||
specific needs and budget. Static IP lists and third-party databases are
|
||||
straightforward but struggle with accuracy and maintenance. Machine
|
||||
learning models provide high precision but are resource-intensive and
|
||||
costly.
|
||||
</p>
|
||||
<p class="mb-6 text-base-content">
|
||||
Our API offers a practical and cost-effective solution, combining
|
||||
real-time accuracy, ease of integration, and scalability. For businesses
|
||||
focused on stopping automated content theft and bot traffic, our API
|
||||
provides the necessary features without the high costs and complexities
|
||||
of more advanced methods.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@include('../price_card.html') @@include('../footer.html')
|
||||
@@include('../script_deps.html')
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,115 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Blog</title>
|
||||
@@include('../meta.html') @@include('../link_deps.html')
|
||||
</head>
|
||||
<body class="bg-base-200 flex flex-col items-center min-h-screen">
|
||||
@@include('../nav.html')
|
||||
<div class="flex-grow w-full max-w-4xl px-4 py-10">
|
||||
<h1 class="text-5xl font-bold mb-6 text-base-content">
|
||||
The Importance of Regular Data Updates IP Detection
|
||||
</h1>
|
||||
<img class="mb-6" src="/assets/daily-update.webp" />
|
||||
|
||||
<p class="mb-6 text-base-content">
|
||||
Data centers constantly evolve, adding and removing servers frequently.
|
||||
This dynamic environment means that the IP addresses associated with
|
||||
data centers change regularly. Keeping your IP detection data up-to-date
|
||||
is crucial for accurate identification and response.
|
||||
</p>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
How Data Center Changes Impact IP Detection
|
||||
</h2>
|
||||
<ul class="list-disc list-inside mb-6 text-base-content">
|
||||
<li class="mb-2">
|
||||
<strong>New Servers:</strong> As data centers add new servers, they
|
||||
acquire new IP addresses. If your IP detection data is outdated, you
|
||||
might miss identifying these new addresses.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Removed Servers:</strong> Data centers also decommission
|
||||
servers, making previously active IP addresses inactive. Outdated data
|
||||
might still flag these IPs, leading to inaccuracies.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Reassigned IPs:</strong> IP addresses can be repurposed and
|
||||
reassigned to different servers or even different data centers.
|
||||
Without regular updates, your detection system might misidentify the
|
||||
current status of an IP.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
Benefits of Accurate IP Detection
|
||||
</h2>
|
||||
<ul class="list-disc list-inside mb-6 text-base-content">
|
||||
<li class="mb-2">
|
||||
<strong>Enhanced Security:</strong> Accurate detection helps in
|
||||
identifying and blocking threats from data centers effectively.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Reduced False Positives:</strong> Keeping data current ensures
|
||||
legitimate users aren’t wrongly flagged due to outdated information.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Optimized Performance:</strong> Up-to-date data helps in
|
||||
making informed decisions, improving the overall performance of your
|
||||
security measures.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
Implementing Regular Data Updates
|
||||
</h2>
|
||||
<ul class="list-disc list-inside mb-6 text-base-content">
|
||||
<li class="mb-2">
|
||||
<strong>Automated Updates:</strong> Set up automated processes to
|
||||
regularly update your IP detection database.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Reliable Data Sources:</strong> Partner with IP data providers
|
||||
who frequently update their records to reflect changes in data
|
||||
centers.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Continuous Monitoring:</strong> Regularly monitor your IP
|
||||
detection system’s accuracy and adjust your update frequency as
|
||||
needed.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">Use Cases</h2>
|
||||
<ul class="list-disc list-inside mb-6 text-base-content">
|
||||
<li class="mb-2">
|
||||
<strong>E-commerce:</strong> Protect against fraudulent activities by
|
||||
accurately tracking new and removed data center IPs.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Financial Services:</strong> Enhance security measures by
|
||||
identifying newly added IPs from data centers potentially used for
|
||||
malicious purposes.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Content Platforms:</strong> Prevent content scraping by
|
||||
keeping up-to-date with changes in data center IP allocations.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">Conclusion</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
The dynamic nature of data centers, with their constant addition and
|
||||
removal of servers, makes regular data updates essential for accurate IP
|
||||
detection. By implementing automated updates, partnering with reliable
|
||||
data sources, and continuously monitoring your system, you can maintain
|
||||
the accuracy of your IP detection, enhance security, and reduce false
|
||||
positives. Stay ahead of potential threats by ensuring your IP data
|
||||
reflects the latest changes in data center infrastructure.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@include('../price_card.html') @@include('../footer.html')
|
||||
@@include('../script_deps.html')
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,187 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Blog</title>
|
||||
@@include('../meta.html') @@include('../link_deps.html')
|
||||
</head>
|
||||
<body class="bg-base-200 flex flex-col items-center min-h-screen">
|
||||
@@include('../nav.html')
|
||||
<div class="flex-grow w-full max-w-4xl px-4 py-10">
|
||||
<h1 class="text-5xl font-bold mb-6 text-base-content">
|
||||
How to Integrate the API Data Center Check with Your Application
|
||||
</h1>
|
||||
<img class="mb-6" src="/assets/how-to-integrate.webp" />
|
||||
<p class="mb-6 text-base-content">
|
||||
You can integrate the API Data Center Check with your application by
|
||||
making an API call to
|
||||
<code>https://ipdatacentercheck.com/api/ip/:ip</code> authorized by
|
||||
<code>x-api-key</code>. Below are examples in different programming
|
||||
languages. The response will include the name of the data center, such
|
||||
as <code>{datacenter: 'AWS'}</code>, if the IP is from a data center, or
|
||||
<code>{datacenter: null}</code> if it is not.
|
||||
</p>
|
||||
|
||||
<div class="tabs">
|
||||
<a class="tab tab-lifted tab-active" id="javascript-tab"
|
||||
>JavaScript (Node.js)</a
|
||||
>
|
||||
<a class="tab tab-lifted" id="python-tab">Python</a>
|
||||
<a class="tab tab-lifted" id="ruby-tab">Ruby</a>
|
||||
<a class="tab tab-lifted" id="php-tab">PHP</a>
|
||||
<a class="tab tab-lifted" id="java-tab">Java</a>
|
||||
</div>
|
||||
|
||||
<div id="javascript" class="tab-content">
|
||||
<pre class="bg-gray-800 text-gray-200 p-4 rounded-lg overflow-auto">
|
||||
<code>
|
||||
const axios = require('axios');
|
||||
|
||||
const apiKey = 'your-api-key';
|
||||
const ip = '8.8.8.8'; // Example IP
|
||||
|
||||
axios.get(`https://ipdatacentercheck.com/api/ip/${ip}`, {
|
||||
headers: {
|
||||
'x-api-key': apiKey
|
||||
}
|
||||
})
|
||||
.then(response => {
|
||||
console.log(response.data); // {datacenter: 'AWS'} or {datacenter: null}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error(error);
|
||||
});
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div id="python" class="tab-content hidden">
|
||||
<pre class="bg-gray-800 text-gray-200 p-4 rounded-lg overflow-auto">
|
||||
<code>
|
||||
import requests
|
||||
|
||||
api_key = 'your-api-key'
|
||||
ip = '8.8.8.8' // Example IP
|
||||
|
||||
url = f'https://ipdatacentercheck.com/api/ip/{ip}'
|
||||
headers = {'x-api-key': api_key}
|
||||
|
||||
response = requests.get(url, headers=headers)
|
||||
print(response.json()) // {'datacenter': 'AWS'} or {'datacenter': null}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div id="ruby" class="tab-content hidden">
|
||||
<pre class="bg-gray-800 text-gray-200 p-4 rounded-lg overflow-auto">
|
||||
<code>
|
||||
require 'net/http'
|
||||
require 'uri'
|
||||
require 'json'
|
||||
|
||||
api_key = 'your-api-key'
|
||||
ip = '8.8.8.8' # Example IP
|
||||
|
||||
uri = URI.parse("https://ipdatacentercheck.com/api/ip/#{ip}")
|
||||
request = Net::HTTP::Get.new(uri)
|
||||
request["x-api-key"] = api_key
|
||||
|
||||
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
|
||||
http.request(request)
|
||||
end
|
||||
|
||||
puts JSON.parse(response.body) # {'datacenter': 'AWS'} or {'datacenter': null}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div id="php" class="tab-content hidden">
|
||||
<pre class="bg-gray-800 text-gray-200 p-4 rounded-lg overflow-auto">
|
||||
<code>
|
||||
<?php
|
||||
$api_key = 'your-api-key';
|
||||
$ip = '8.8.8.8'; // Example IP
|
||||
$url = "https://ipdatacentercheck.com/api/ip/$ip";
|
||||
|
||||
$options = [
|
||||
"http" => [
|
||||
"header" => "x-api-key: $api_key"
|
||||
]
|
||||
];
|
||||
|
||||
$context = stream_context_create($options);
|
||||
$response = file_get_contents($url, false, $context);
|
||||
$data = json_decode($response, true);
|
||||
|
||||
print_r($data); // ['datacenter' => 'AWS'] or ['datacenter' => null]
|
||||
?>
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div id="java" class="tab-content hidden">
|
||||
<pre class="bg-gray-800 text-gray-200 p-4 rounded-lg overflow-auto">
|
||||
<code>
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
String apiKey = "your-api-key";
|
||||
String ip = "8.8.8.8"; // Example IP
|
||||
URL obj = new URL(url);
|
||||
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
|
||||
con.setRequestMethod("GET");
|
||||
con.setRequestProperty("x-api-key", apiKey);
|
||||
|
||||
int responseCode = con.getResponseCode();
|
||||
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
|
||||
String inputLine;
|
||||
StringBuffer response = new StringBuffer();
|
||||
|
||||
while ((inputLine = in.readLine()) != null) {
|
||||
response.append(inputLine);
|
||||
}
|
||||
in.close();
|
||||
|
||||
System.out.println(response.toString()); // {'datacenter': 'AWS'} or {'datacenter': null}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@include('../price_card.html') @@include('../footer.html')
|
||||
@@include('../script_deps.html')
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
function showTab(language) {
|
||||
const tabs = document.querySelectorAll(".tab-content");
|
||||
tabs.forEach((tab) => tab.classList.add("hidden"));
|
||||
document.getElementById(language).classList.remove("hidden");
|
||||
|
||||
const tabLinks = document.querySelectorAll(".tab");
|
||||
tabLinks.forEach((link) => {
|
||||
link.classList.remove("tab-active");
|
||||
});
|
||||
document
|
||||
.getElementById(`${language}-tab`)
|
||||
.classList.add("tab-active");
|
||||
}
|
||||
|
||||
const tabLinks = document.querySelectorAll(".tab");
|
||||
tabLinks.forEach((link) => {
|
||||
link.addEventListener("click", function () {
|
||||
showTab(link.id.replace("-tab", ""));
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,94 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Blog</title>
|
||||
@@include('../meta.html') @@include('../link_deps.html')
|
||||
</head>
|
||||
<body class="bg-base-200 flex flex-col items-center min-h-screen">
|
||||
@@include('../nav.html')
|
||||
|
||||
<div class="max-w-md">
|
||||
<h2 class="text-2xl font-bold mt-4 mb-2 text-base-content">Blog Posts</h2>
|
||||
<div class="mt-4">
|
||||
<a href="/blog/bot-detection.html" class="text-primary text-white">
|
||||
<div class="flex items-start space-x-4">
|
||||
<img
|
||||
src="/assets/bot-detection.webp"
|
||||
alt="Blog Post 1 Image"
|
||||
class="w-32 h-32 object-cover rounded-lg"
|
||||
/>
|
||||
<div>
|
||||
<h3 class="text-xl font-bold text-white">
|
||||
Why Do Data Center IPs Matter?
|
||||
</h3>
|
||||
<p class="text-white">
|
||||
Learn the importance of data center IPs, their impact on
|
||||
cybersecurity, and how to manage them effectively.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mt-4">
|
||||
<a href="/blog/compare.html" class="text-primary text-white">
|
||||
<div class="flex items-start space-x-4">
|
||||
<img
|
||||
src="/assets/compare.webp"
|
||||
alt="Blog Post 1 Image"
|
||||
class="w-32 h-32 object-cover rounded-lg"
|
||||
/>
|
||||
<div>
|
||||
<h3 class="text-xl font-bold text-white">
|
||||
Comparing Bots Detection Methods
|
||||
</h3>
|
||||
<p class="text-white">
|
||||
Explore cutting-edge bot detection methods and discover how our
|
||||
Real-Time IP Detection API.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mt-4">
|
||||
<a href="/blog/daily-update.html" class="text-primary text-white">
|
||||
<div class="flex items-start space-x-4">
|
||||
<img
|
||||
src="/assets/daily-update.webp"
|
||||
alt="Blog Post 1 Image"
|
||||
class="w-32 h-32 object-cover rounded-lg"
|
||||
/>
|
||||
<div>
|
||||
<h3 class="text-xl font-bold text-white">
|
||||
The Importance of Regular Data Updates IP Detection
|
||||
</h3>
|
||||
<p class="text-white">
|
||||
Discover why keeping your IP detection data current is vital for
|
||||
security and efficiency.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="mt-4">
|
||||
<a href="/blog/how-to-integrate.html" class="text-primary text-white">
|
||||
<div class="flex items-start space-x-4">
|
||||
<img
|
||||
src="/assets/how-to-integrate.webp"
|
||||
alt="Blog Post 1 Image"
|
||||
class="w-32 h-32 object-cover rounded-lg"
|
||||
/>
|
||||
<div>
|
||||
<h3 class="text-xl font-bold text-white">How to use our API</h3>
|
||||
<p class="text-white">
|
||||
Effortlessly integrate API into your application to identify
|
||||
data center origins of IP addresses.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-4 w-full">@@include('../price_card.html')</div>
|
||||
@@include('../footer.html') @@include('../script_deps.html')
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,190 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>How to Know If a Request Is Coming from a Server</title>
|
||||
<link
|
||||
href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<link
|
||||
href="https://cdn.jsdelivr.net/npm/daisyui@1.14.0/dist/full.css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
</head>
|
||||
<body
|
||||
class="bg-base-200 flex flex-col items-center min-h-screen"
|
||||
data-theme="light"
|
||||
>
|
||||
<nav class="w-full bg-base-100 shadow-lg py-4">
|
||||
<div class="container mx-auto flex justify-between items-center px-4">
|
||||
<a href="#" class="text-xl font-bold text-base-content"
|
||||
>API Data Center</a
|
||||
>
|
||||
<div>
|
||||
<a href="#" class="btn btn-ghost text-base-content">Home</a>
|
||||
<a href="#" class="btn btn-ghost text-base-content">Blog</a>
|
||||
<a href="#" class="btn btn-primary ml-2">Sign Up</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="flex-grow w-full max-w-4xl px-4 py-10">
|
||||
<h1 class="text-5xl font-bold mb-6 text-base-content">
|
||||
How to Know If a Request Is Coming from a Server
|
||||
</h1>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">Introduction</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
Understanding whether a request comes from a server or a typical user is
|
||||
essential for managing web traffic and enhancing your site's security.
|
||||
Server requests, often originating from data centers or automated
|
||||
scripts, can impact your website's performance and may include
|
||||
activities like content scraping or automated attacks. This article
|
||||
explores various methods to detect server requests and offers practical
|
||||
tips for effective implementation.
|
||||
</p>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
IP Address Analysis
|
||||
</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
One of the most straightforward methods to identify server requests is
|
||||
through IP address analysis. Data centers typically have known IP
|
||||
ranges, which can be tracked using up-to-date IP databases.
|
||||
</p>
|
||||
<ul class="list-disc list-inside mb-6 text-base-content">
|
||||
<li class="mb-2">
|
||||
<strong>How It Works:</strong> By checking if the IP address of a
|
||||
request belongs to a known data center, you can determine its origin.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Practical Tip:</strong> Use a reliable IP database that is
|
||||
regularly updated to ensure accuracy. Integrating an IP lookup API can
|
||||
streamline this process and provide real-time data.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
User-Agent String Examination
|
||||
</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
Another method is to examine the User-Agent string in the HTTP request
|
||||
header. The User-Agent string provides information about the client
|
||||
making the request, including the browser and operating system.
|
||||
</p>
|
||||
<ul class="list-disc list-inside mb-6 text-base-content">
|
||||
<li class="mb-2">
|
||||
<strong>How It Works:</strong> Server requests often use generic or
|
||||
default User-Agent strings, making them easier to spot.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Practical Tip:</strong> Implement logic to check for
|
||||
suspicious User-Agent strings that do not match typical user patterns.
|
||||
However, be aware that sophisticated bots can spoof User-Agent
|
||||
strings, so this method should be used in conjunction with others.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
Behavioural Analysis
|
||||
</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
Behavioural analysis involves monitoring the patterns and behaviours of
|
||||
requests. Automated server requests often show distinct behaviours that
|
||||
differ from human users.
|
||||
</p>
|
||||
<ul class="list-disc list-inside mb-6 text-base-content">
|
||||
<li class="mb-2">
|
||||
<strong>How It Works:</strong> Look for high request rates, access at
|
||||
unusual times, or repetitive actions that are indicative of automated
|
||||
scripts.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Practical Tip:</strong> Set up analytics to track request
|
||||
patterns and flag anomalies. Use machine learning models if resources
|
||||
allow, as they can adapt to detect new and evolving patterns over
|
||||
time.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
Real-Time Detection APIs
|
||||
</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
Using real-time detection APIs can provide a robust solution for
|
||||
identifying server requests. These APIs leverage multiple detection
|
||||
methods, including IP analysis, User-Agent examination, and behavioural
|
||||
patterns.
|
||||
</p>
|
||||
<ul class="list-disc list-inside mb-6 text-base-content">
|
||||
<li class="mb-2">
|
||||
<strong>How It Works:</strong> Real-time detection APIs analyze
|
||||
various factors in real-time to determine the origin of a request.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Practical Tip:</strong> Choose an API that offers
|
||||
comprehensive coverage and regular updates. This can significantly
|
||||
reduce the burden of maintaining your detection systems and ensure
|
||||
high accuracy.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">
|
||||
Best Practices for Implementation
|
||||
</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
Combining various detection methods and following best practices can
|
||||
enhance the accuracy and effectiveness of identifying server requests.
|
||||
</p>
|
||||
<ul class="list-disc list-inside mb-6 text-base-content">
|
||||
<li class="mb-2">
|
||||
<strong>Integrate Multiple Methods:</strong> Use a combination of IP
|
||||
analysis, User-Agent checks, and behavioural analysis for a more
|
||||
reliable detection system.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Regular Updates:</strong> Ensure your IP databases and
|
||||
detection rules are regularly updated to reflect the latest data
|
||||
center IP ranges and bot behaviours.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Rate Limiting:</strong> Implement rate limiting to control the
|
||||
number of requests from a single IP address within a specific
|
||||
timeframe. This can help mitigate the impact of automated server
|
||||
requests.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>CAPTCHA Implementation:</strong> Use CAPTCHA challenges to
|
||||
verify if the request is from a human user, especially when suspicious
|
||||
activity is detected.
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<strong>Continuous Monitoring:</strong> Set up continuous monitoring
|
||||
of your web traffic to quickly identify and respond to unusual
|
||||
patterns.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-3xl font-bold mb-4 text-base-content">Conclusion</h2>
|
||||
<p class="mb-6 text-base-content">
|
||||
Effectively detecting whether a request comes from a server is crucial
|
||||
for maintaining your website's performance and security. By utilizing
|
||||
methods like IP address analysis, User-Agent string examination,
|
||||
behavioural analysis, and real-time detection APIs, you can accurately
|
||||
identify and manage server requests. Implementing these strategies and
|
||||
best practices will help protect your site from unwanted automated
|
||||
traffic and provide a better experience for your legitimate users.
|
||||
</p>
|
||||
</div>
|
||||
<footer class="bg-base-100 w-full py-4">
|
||||
<div class="container mx-auto text-center">
|
||||
<a href="privacy.html" class="text-base-content">Privacy Policy</a>
|
||||
<span class="mx-2">|</span>
|
||||
<a href="terms.html" class="text-base-content">Terms of Service</a>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/daisyui@1.14.0/dist/full.js"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,7 @@
|
|||
<footer class="bg-base-100 w-full py-4 mt-10">
|
||||
<div class="container mx-auto text-center">
|
||||
<a href="/privacy.html" class="text-base-content">Privacy Policy</a>
|
||||
<span class="mx-2">|</span>
|
||||
<a href="/terms.html" class="text-base-content">Terms of Service</a>
|
||||
</div>
|
||||
</footer>
|
|
@ -0,0 +1,22 @@
|
|||
const gulp = require("gulp");
|
||||
const fileInclude = require("gulp-file-include");
|
||||
|
||||
gulp.task("html", function () {
|
||||
return gulp
|
||||
.src(["**/*.html"])
|
||||
.pipe(
|
||||
fileInclude({
|
||||
prefix: "@@",
|
||||
basepath: "@file",
|
||||
})
|
||||
)
|
||||
.pipe(gulp.dest("dist"));
|
||||
});
|
||||
|
||||
gulp.task("copy-assets", function () {
|
||||
return gulp
|
||||
.src("assets/**/*", { encoding: false })
|
||||
.pipe(gulp.dest("dist/assets"));
|
||||
});
|
||||
|
||||
gulp.task("default", gulp.series("html", "copy-assets"));
|
|
@ -0,0 +1,253 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Check API Data Center</title>
|
||||
@@include('meta.html') @@include('link_deps.html')
|
||||
</head>
|
||||
<body class="bg-base-200 flex flex-col items-center min-h-screen">
|
||||
@@include('nav.html')
|
||||
<div class="flex-grow flex flex-col items-center justify-center">
|
||||
<div class="py-10">
|
||||
<div class="text-center">
|
||||
<h1 class="text-5xl font-bold mb-5 text-base-content">
|
||||
Check IP Data Center
|
||||
</h1>
|
||||
<p class="text-lg mb-8 text-base-content">
|
||||
Detect and block requests from known data centers to prevent
|
||||
malicious activities.
|
||||
</p>
|
||||
<div class="flex justify-center mb-6">
|
||||
<input
|
||||
id="ip-to-check"
|
||||
type="text"
|
||||
placeholder="Enter API address"
|
||||
class="input input-bordered input-primary w-full max-w-xs"
|
||||
/>
|
||||
<button id="check-btn" class="btn btn-primary ml-2">Check</button>
|
||||
</div>
|
||||
<div>
|
||||
<p class="text-sm text-base-content mb-10">
|
||||
Try it out by entering an API address above.
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p id="results" class="text-base-content mb-10"></p>
|
||||
</div>
|
||||
</div>
|
||||
@@include('price_card.html')
|
||||
<div
|
||||
class="bg-base-100 shadow-lg rounded-lg p-6 mt-10 w-full max-w-md mx-auto"
|
||||
>
|
||||
<h2 class="text-2xl font-bold mb-4 text-base-content">
|
||||
Why Use Our API?
|
||||
</h2>
|
||||
<ul class="space-y-4 text-base-content">
|
||||
<li class="flex items-start">
|
||||
<svg
|
||||
class="w-6 h-6 text-primary flex-shrink-0 mr-2"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M5 13l4 4L19 7"
|
||||
></path>
|
||||
</svg>
|
||||
<span
|
||||
>Reliable and accurate detection of data center IP
|
||||
addresses.</span
|
||||
>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<svg
|
||||
class="w-6 h-6 text-primary flex-shrink-0 mr-2"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M5 13l4 4L19 7"
|
||||
></path>
|
||||
</svg>
|
||||
<span
|
||||
>High request rate limit to support your application's
|
||||
needs.</span
|
||||
>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<svg
|
||||
class="w-6 h-6 text-primary flex-shrink-0 mr-2"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M5 13l4 4L19 7"
|
||||
></path>
|
||||
</svg>
|
||||
<span>Easy integration with your existing systems.</span>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<svg
|
||||
class="w-6 h-6 text-primary flex-shrink-0 mr-2"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M5 13l4 4L19 7"
|
||||
></path>
|
||||
</svg>
|
||||
<span>Affordable pricing with no hidden fees.</span>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<svg
|
||||
class="w-6 h-6 text-primary flex-shrink-0 mr-2"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M5 13l4 4L19 7"
|
||||
></path>
|
||||
</svg>
|
||||
<span
|
||||
>Expert support to help you get the most out of our API.</span
|
||||
>
|
||||
</li>
|
||||
<li class="flex items-start">
|
||||
<svg
|
||||
class="w-6 h-6 text-primary flex-shrink-0 mr-2"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M5 13l4 4L19 7"
|
||||
></path>
|
||||
</svg>
|
||||
<span
|
||||
>Regular updates and improvements based on user feedback.</span
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div
|
||||
class="bg-base-100 shadow-lg rounded-lg p-6 mt-10 w-full max-w-md mx-auto"
|
||||
>
|
||||
<h2 class="text-2xl font-bold mb-4 text-base-content">FAQ</h2>
|
||||
<ul class="space-y-4 text-base-content">
|
||||
<li>
|
||||
<h3 class="font-semibold">
|
||||
How do I integrate the API with my application?
|
||||
</h3>
|
||||
<p>
|
||||
To integrate our API with your application, you need to include
|
||||
the provided x-api-key in your request headers.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3 class="font-semibold">
|
||||
How accurate is the data center detection?
|
||||
</h3>
|
||||
<p>
|
||||
Our data center detection is highly accurate. We maintain an
|
||||
extensive database of IP addresses from major data centers. You
|
||||
can view the full list here.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3 class="font-semibold">
|
||||
What happens if I exceed my request limit?
|
||||
</h3>
|
||||
<p>
|
||||
If you exceed your request limit, your requests will be
|
||||
rejected. We provide response headers x-ratelimit-limit,
|
||||
x-ratelimit-remaining, and x-ratelimit-reset to help you manage
|
||||
your usage.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3 class="font-semibold">Is there a free trial available?</h3>
|
||||
<p>
|
||||
Yes, we offer a free trial that allows you to make 1 request per
|
||||
second.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3 class="font-semibold">What kind of support is included?</h3>
|
||||
<p>
|
||||
Once you create an account, you can access our support team
|
||||
directly through the chat feature in your dashboard.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3 class="font-semibold">How often is the data updated?</h3>
|
||||
<p>
|
||||
Our data is updated daily to ensure accuracy and reliability.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<h3 class="font-semibold">
|
||||
Can I get a custom plan for higher request rates?
|
||||
</h3>
|
||||
<p>
|
||||
Yes, we offer custom plans for higher request rates. Please
|
||||
contact us to discuss your specific needs and we will tailor a
|
||||
solution for you.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@include('footer.html') @@include('script_deps.html')
|
||||
<script>
|
||||
const resultsEl = document.getElementById("results");
|
||||
document.getElementById("check-btn").addEventListener("click", () => {
|
||||
const ip = document.getElementById("ip-to-check").value;
|
||||
fetch(`/api/ip/${ip}`)
|
||||
.then((response) => {
|
||||
if (response.ok) {
|
||||
return response.json();
|
||||
}
|
||||
response
|
||||
.json()
|
||||
.then(({ message }) => (resultsEl.innerHTML = message));
|
||||
})
|
||||
.then(({ datacenter }) => {
|
||||
if (datacenter) {
|
||||
resultsEl.innerHTML = `🤖 This IP is from ${datacenter}`;
|
||||
} else {
|
||||
resultsEl.innerHTML = `🧑💻 This IP is not from a datacenter`;
|
||||
}
|
||||
})
|
||||
.catch((error) => console.log(error));
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,8 @@
|
|||
<link
|
||||
href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<link
|
||||
href="https://cdn.jsdelivr.net/npm/daisyui@1.14.0/dist/full.css"
|
||||
rel="stylesheet"
|
||||
/>
|
|
@ -0,0 +1,33 @@
|
|||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link
|
||||
rel="apple-touch-icon"
|
||||
sizes="180x180"
|
||||
href="/assets/favicon/apple-touch-icon.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="32x32"
|
||||
href="/assets/favicon/favicon-32x32.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="16x16"
|
||||
href="/assets/favicon/favicon-16x16.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="192x192"
|
||||
href="/assets/favicon/android-chrome-192x192.png"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="512x512"
|
||||
href="/assets/favicon/android-chrome-512x512.png"
|
||||
/>
|
||||
<link rel="shortcut icon" href="/assets/favicon/favicon.ico" />
|
||||
<meta name="theme-color" content="#ffffff" />
|
|
@ -0,0 +1,16 @@
|
|||
<nav class="w-full bg-base-100 shadow-lg py-4">
|
||||
<div class="container mx-auto flex justify-between items-center px-4">
|
||||
<a
|
||||
href="/index.html"
|
||||
class="flex items-center text-xl font-bold text-base-content"
|
||||
>
|
||||
<img src="/assets/logo.png" alt="Logo" class="mr-2 h-6" />
|
||||
<!-- Logo added here -->
|
||||
Ip Data Center Check
|
||||
</a>
|
||||
<div>
|
||||
<a href="/blog" class="btn btn-ghost text-base-content">Blog</a>
|
||||
<a href="/signup" class="btn btn-primary ml-2">Sign Up</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"name": "landing",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "gulpfile.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"gulp": "^5.0.0",
|
||||
"gulp-file-include": "^2.3.0",
|
||||
"http-server": "^14.1.1"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
<div class="bg-base-100 shadow-lg rounded-lg p-6 w-full max-w-md mx-auto">
|
||||
<div class="text-center mb-4">
|
||||
<p class="text-6xl font-extrabold my-2">
|
||||
$20<span class="text-2xl">/month</span>
|
||||
</p>
|
||||
</div>
|
||||
<ul class="text-left mb-6 text-base-content space-y-2">
|
||||
<li class="flex items-center">
|
||||
<svg
|
||||
class="w-5 h-5 text-primary flex-shrink-0 mr-2"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M5 13l4 4L19 7"
|
||||
></path>
|
||||
</svg>
|
||||
100 requests/second
|
||||
</li>
|
||||
<li class="flex items-center">
|
||||
<svg
|
||||
class="w-5 h-5 text-primary flex-shrink-0 mr-2"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M5 13l4 4L19 7"
|
||||
></path>
|
||||
</svg>
|
||||
Unlimited IP checks
|
||||
</li>
|
||||
<li class="flex items-center">
|
||||
<svg
|
||||
class="w-5 h-5 text-primary flex-shrink-0 mr-2"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M5 13l4 4L19 7"
|
||||
></path>
|
||||
</svg>
|
||||
Email support
|
||||
</li>
|
||||
</ul>
|
||||
<button class="btn btn-primary w-full">Get Started</button>
|
||||
</div>
|
|
@ -0,0 +1,163 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Privacy Policy</title>
|
||||
@@include('meta.html') @@include('link_deps.html')
|
||||
</head>
|
||||
<body class="bg-base-200 flex flex-col items-center min-h-screen">
|
||||
@@include('nav.html')
|
||||
<div
|
||||
class="flex-grow flex flex-col items-center justify-center w-full max-w-4xl px-4 py-10"
|
||||
>
|
||||
<h1 class="text-5xl font-bold mb-10 text-base-content">Privacy Policy</h1>
|
||||
<div
|
||||
class="bg-base-100 shadow-lg rounded-lg p-6 w-full text-base-content"
|
||||
>
|
||||
<p class="mb-4">
|
||||
Your privacy is important to us. It is API Data Center's policy to
|
||||
respect your privacy regarding any information we may collect from you
|
||||
across our website,
|
||||
<a href="#" class="text-primary">https://www.yourwebsite.com</a>, and
|
||||
other sites we own and operate.
|
||||
</p>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">1. Information We Collect</h2>
|
||||
<p class="mb-4">
|
||||
We only collect information about you if we have a reason to do so –
|
||||
for example, to provide our services, to communicate with you, or to
|
||||
make our services better.
|
||||
</p>
|
||||
<p class="mb-4">
|
||||
We collect information in three ways: if and when you provide
|
||||
information to us, automatically through operating our services, and
|
||||
from outside sources. Here is the information we collect:
|
||||
</p>
|
||||
<ul class="list-disc list-inside mb-4">
|
||||
<li>Log data</li>
|
||||
<li>Device information</li>
|
||||
<li>IP address</li>
|
||||
<li>Cookies and other tracking technologies</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">2. How We Use Information</h2>
|
||||
<p class="mb-4">
|
||||
We use the information we collect in various ways, including to:
|
||||
</p>
|
||||
<ul class="list-disc list-inside mb-4">
|
||||
<li>Provide, operate, and maintain our website</li>
|
||||
<li>Improve, personalize, and expand our website</li>
|
||||
<li>Understand and analyze how you use our website</li>
|
||||
<li>Develop new products, services, features, and functionality</li>
|
||||
<li>
|
||||
Communicate with you, either directly or through one of our
|
||||
partners, including for customer service, to provide you with
|
||||
updates and other information relating to the website, and for
|
||||
marketing and promotional purposes
|
||||
</li>
|
||||
<li>Process your transactions and manage your orders</li>
|
||||
<li>Find and prevent fraud</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">3. Sharing Information</h2>
|
||||
<p class="mb-4">
|
||||
We do not share your personal information with anyone except to comply
|
||||
with the law, develop our products, or protect our rights.
|
||||
</p>
|
||||
<p class="mb-4">
|
||||
We may share information about you in the following ways:
|
||||
</p>
|
||||
<ul class="list-disc list-inside mb-4">
|
||||
<li>
|
||||
With third-party vendors, consultants, and other service providers
|
||||
who need access to such information to carry out work on our behalf
|
||||
</li>
|
||||
<li>
|
||||
To comply with laws or to respond to lawful requests and legal
|
||||
process
|
||||
</li>
|
||||
<li>
|
||||
To protect the rights and property of API Data Center, our agents,
|
||||
customers, and others, including to enforce our agreements,
|
||||
policies, and terms of use
|
||||
</li>
|
||||
<li>
|
||||
In an emergency to protect the personal safety of API Data Center,
|
||||
its customers, or any person
|
||||
</li>
|
||||
<li>With your consent</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">4. Data Retention</h2>
|
||||
<p class="mb-4">
|
||||
We will retain your information only for as long as is necessary for
|
||||
the purposes set out in this policy. We will retain and use your
|
||||
information to the extent necessary to comply with our legal
|
||||
obligations, resolve disputes, and enforce our policies.
|
||||
</p>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">5. Security</h2>
|
||||
<p class="mb-4">
|
||||
The security of your information is important to us. We use
|
||||
commercially acceptable means to protect your personal information,
|
||||
but remember that no method of transmission over the Internet, or
|
||||
method of electronic storage is 100% secure and reliable, and we
|
||||
cannot guarantee its absolute security.
|
||||
</p>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">6. Your Data Protection Rights</h2>
|
||||
<p class="mb-4">
|
||||
Depending on your location, you may have the following rights
|
||||
regarding your personal data:
|
||||
</p>
|
||||
<ul class="list-disc list-inside mb-4">
|
||||
<li>
|
||||
The right to access – You have the right to request copies of your
|
||||
personal data.
|
||||
</li>
|
||||
<li>
|
||||
The right to rectification – You have the right to request that we
|
||||
correct any information you believe is inaccurate or complete
|
||||
information you believe is incomplete.
|
||||
</li>
|
||||
<li>
|
||||
The right to erasure – You have the right to request that we erase
|
||||
your personal data, under certain conditions.
|
||||
</li>
|
||||
<li>
|
||||
The right to restrict processing – You have the right to request
|
||||
that we restrict the processing of your personal data, under certain
|
||||
conditions.
|
||||
</li>
|
||||
<li>
|
||||
The right to object to processing – You have the right to object to
|
||||
our processing of your personal data, under certain conditions.
|
||||
</li>
|
||||
<li>
|
||||
The right to data portability – You have the right to request that
|
||||
we transfer the data that we have collected to another organization,
|
||||
or directly to you, under certain conditions.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">
|
||||
7. Changes to This Privacy Policy
|
||||
</h2>
|
||||
<p class="mb-4">
|
||||
We may update our Privacy Policy from time to time. We will notify you
|
||||
of any changes by posting the new Privacy Policy on this page. You are
|
||||
advised to review this Privacy Policy periodically for any changes.
|
||||
Changes to this Privacy Policy are effective when they are posted on
|
||||
this page.
|
||||
</p>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">8. Contact Us</h2>
|
||||
<p class="mb-4">
|
||||
If you have any questions about this Privacy Policy, please contact
|
||||
us.
|
||||
<a href="#" class="text-primary">contact us</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@include('footer.html') @@include('script_deps.html')
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1 @@
|
|||
<script src="https://cdn.tailwindcss.com"></script>
|
|
@ -0,0 +1,173 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
@@include('meta.html') @@include('link_deps.html')
|
||||
<title>Terms and Conditions</title>
|
||||
</head>
|
||||
<body class="bg-base-200 flex flex-col items-center min-h-screen">
|
||||
@@include('nav.html')
|
||||
<div
|
||||
class="flex-grow flex flex-col items-center justify-center w-full max-w-4xl px-4 py-10"
|
||||
>
|
||||
<h1 class="text-5xl font-bold mb-10 text-base-content">
|
||||
Terms and Conditions
|
||||
</h1>
|
||||
<div
|
||||
class="bg-base-100 shadow-lg rounded-lg p-6 w-full text-base-content"
|
||||
>
|
||||
<h2 class="text-2xl font-bold mb-4">1. Introduction</h2>
|
||||
<p class="mb-4">
|
||||
Welcome to API Data Center. These terms and conditions outline the
|
||||
rules and regulations for the use of our website and services.
|
||||
</p>
|
||||
<p class="mb-4">
|
||||
By accessing this website, we assume you accept these terms and
|
||||
conditions. Do not continue to use API Data Center if you do not agree
|
||||
to all of the terms and conditions stated on this page.
|
||||
</p>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">2. License</h2>
|
||||
<p class="mb-4">
|
||||
Unless otherwise stated, API Data Center and/or its licensors own the
|
||||
intellectual property rights for all material on API Data Center. All
|
||||
intellectual property rights are reserved. You may access this from
|
||||
API Data Center for your own personal use subjected to restrictions
|
||||
set in these terms and conditions.
|
||||
</p>
|
||||
<p class="mb-4">You must not:</p>
|
||||
<ul class="list-disc list-inside mb-4">
|
||||
<li>Republish material from API Data Center</li>
|
||||
<li>Sell, rent, or sub-license material from API Data Center</li>
|
||||
<li>Reproduce, duplicate, or copy material from API Data Center</li>
|
||||
<li>Redistribute content from API Data Center</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">3. User Content</h2>
|
||||
<p class="mb-4">
|
||||
Parts of this website offer an opportunity for users to post and
|
||||
exchange opinions and information in certain areas of the website. API
|
||||
Data Center does not filter, edit, publish or review Comments prior to
|
||||
their presence on the website. Comments do not reflect the views and
|
||||
opinions of API Data Center, its agents and/or affiliates. Comments
|
||||
reflect the views and opinions of the person who post their views and
|
||||
opinions.
|
||||
</p>
|
||||
<p class="mb-4">
|
||||
API Data Center reserves the right to monitor all Comments and to
|
||||
remove any Comments which can be considered inappropriate, offensive,
|
||||
or causes breach of these Terms and Conditions.
|
||||
</p>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">4. Hyperlinking to our Content</h2>
|
||||
<p class="mb-4">
|
||||
The following organizations may link to our Website without prior
|
||||
written approval:
|
||||
</p>
|
||||
<ul class="list-disc list-inside mb-4">
|
||||
<li>Government agencies</li>
|
||||
<li>Search engines</li>
|
||||
<li>News organizations</li>
|
||||
<li>
|
||||
Online directory distributors may link to our Website in the same
|
||||
manner as they hyperlink to the Websites of other listed businesses
|
||||
</li>
|
||||
<li>
|
||||
System wide Accredited Businesses except soliciting non-profit
|
||||
organizations, charity shopping malls, and charity fundraising
|
||||
groups which may not hyperlink to our Web site
|
||||
</li>
|
||||
</ul>
|
||||
<p class="mb-4">
|
||||
These organizations may link to our home page, to publications or to
|
||||
other Website information so long as the link: (a) is not in any way
|
||||
deceptive; (b) does not falsely imply sponsorship, endorsement or
|
||||
approval of the linking party and its products and/or services; and
|
||||
(c) fits within the context of the linking party’s site.
|
||||
</p>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">5. iFrames</h2>
|
||||
<p class="mb-4">
|
||||
Without prior approval and written permission, you may not create
|
||||
frames around our Webpages that alter in any way the visual
|
||||
presentation or appearance of our Website.
|
||||
</p>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">6. Content Liability</h2>
|
||||
<p class="mb-4">
|
||||
We shall not be hold responsible for any content that appears on your
|
||||
Website. You agree to protect and defend us against all claims that is
|
||||
rising on your Website. No link(s) should appear on any Website that
|
||||
may be interpreted as libelous, obscene or criminal, or which
|
||||
infringes, otherwise violates, or advocates the infringement or other
|
||||
violation of, any third party rights.
|
||||
</p>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">7. Your Privacy</h2>
|
||||
<p class="mb-4">Please read our Privacy Policy.</p>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">8. Reservation of Rights</h2>
|
||||
<p class="mb-4">
|
||||
We reserve the right to request that you remove all links or any
|
||||
particular link to our Website. You approve to immediately remove all
|
||||
links to our Website upon request. We also reserve the right to amen
|
||||
these terms and conditions and it’s linking policy at any time. By
|
||||
continuously linking to our Website, you agree to be bound to and
|
||||
follow these linking terms and conditions.
|
||||
</p>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">
|
||||
9. Removal of links from our website
|
||||
</h2>
|
||||
<p class="mb-4">
|
||||
If you find any link on our Website that is offensive for any reason,
|
||||
you are free to contact and inform us any moment. We will consider
|
||||
requests to remove links but we are not obligated to or so or to
|
||||
respond to you directly.
|
||||
</p>
|
||||
<p class="mb-4">
|
||||
We do not ensure that the information on this website is correct, we
|
||||
do not warrant its completeness or accuracy; nor do we promise to
|
||||
ensure that the website remains available or that the material on the
|
||||
website is kept up to date.
|
||||
</p>
|
||||
|
||||
<h2 class="text-2xl font-bold mb-4">10. Disclaimer</h2>
|
||||
<p class="mb-4">
|
||||
To the maximum extent permitted by applicable law, we exclude all
|
||||
representations, warranties and conditions relating to our website and
|
||||
the use of this website. Nothing in this disclaimer will:
|
||||
</p>
|
||||
<ul class="list-disc list-inside mb-4">
|
||||
<li>
|
||||
limit or exclude our or your liability for death or personal injury;
|
||||
</li>
|
||||
<li>
|
||||
limit or exclude our or your liability for fraud or fraudulent
|
||||
misrepresentation;
|
||||
</li>
|
||||
<li>
|
||||
limit any of our or your liabilities in any way that is not
|
||||
permitted under applicable law; or
|
||||
</li>
|
||||
<li>
|
||||
exclude any of our or your liabilities that may not be excluded
|
||||
under applicable law.
|
||||
</li>
|
||||
</ul>
|
||||
<p class="mb-4">
|
||||
The limitations and prohibitions of liability set in this Section and
|
||||
elsewhere in this disclaimer: (a) are subject to the preceding
|
||||
paragraph; and (b) govern all liabilities arising under the
|
||||
disclaimer, including liabilities arising in contract, in tort and for
|
||||
breach of statutory duty.
|
||||
</p>
|
||||
<p class="mb-4">
|
||||
As long as the website and the information and services on the website
|
||||
are provided free of charge, we will not be liable for any loss or
|
||||
damage of any nature.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@include('footer.html') @@include('script_deps.html')
|
||||
</body>
|
||||
</html>
|