diff --git a/templates/_footer.html b/templates/_footer.html index 333c20a..1b4323e 100644 --- a/templates/_footer.html +++ b/templates/_footer.html @@ -1,6 +1,6 @@ - - \ No newline at end of file diff --git a/templates/_footer_lang.html b/templates/_footer_lang.html index 25701af..42cc4e1 100644 --- a/templates/_footer_lang.html +++ b/templates/_footer_lang.html @@ -1,8 +1,8 @@ + \ No newline at end of file diff --git a/templates/_search_form.html b/templates/_search_form.html index f5dd756..11b4579 100644 --- a/templates/_search_form.html +++ b/templates/_search_form.html @@ -1,14 +1,14 @@ + \ No newline at end of file diff --git a/templates/error_alert.html b/templates/error_alert.html index 2a65543..863c82b 100644 --- a/templates/error_alert.html +++ b/templates/error_alert.html @@ -1,6 +1,6 @@ {% extends "base.html" %} -{% block title %}{{ t_error }} - {{ site_domain }}{% endblock %} +{% block title %}{{ "Error"|t(locale) }} - {{ site_domain }}{% endblock %} {% block head_meta %} @@ -42,4 +42,4 @@ -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/templates/error_page.html b/templates/error_page.html index 4707b11..c0d744c 100644 --- a/templates/error_page.html +++ b/templates/error_page.html @@ -11,6 +11,6 @@

{{ status_code }}

{{ status_text }}

{{ error_message }}

- {{ t_go_home }} + {{ "Go to Home"|t(locale) }} -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/templates/index.html b/templates/index.html index 3770b4b..3bb9c95 100644 --- a/templates/index.html +++ b/templates/index.html @@ -1,23 +1,23 @@ {% extends "base.html" %} -{% block title %}{{ t_title }} - {{ site_domain }}{% endblock %} +{% block title %}{{ "Accurate IP proxy information and geographic location"|t(locale) }} - {{ site_domain }}{% endblock %} {% block head_meta %} {% if is_query %} {% else %} - + - - + + - - + + {% for l in all_locales %} @@ -36,7 +36,7 @@ "@type": "WebApplication", "name": "{{ site_domain }}", "url": "https://{{ site_domain }}/", - "description": "{{ t_description }}", + "description": "{{ "Find your public IP address instantly. Look up geolocation, ASN, organization, and proxy/VPN/Tor detection for any IP address."|t(locale) }}", "applicationCategory": "UtilitiesApplication", "operatingSystem": "All", "offers": { @@ -66,55 +66,55 @@
-
+

{{ ip }}

- +
- +
{% if !asn.is_empty() %} - + {% endif %} {% if !org.is_empty() %} - + {% endif %} {% if !country.is_empty() %} - + {% endif %} {% if !city.is_empty() %} - + {% endif %} - - + + - - + + - - + + - - + +
{{ t_asn }}{{ "ASN"|t(locale) }} {% if let Some(n) = asn_number %}{{ asn }}{% else %}{{ asn }}{% endif %}
{{ t_org }}{{ "Org"|t(locale) }} {{ org }}
{{ t_country }}{{ "Country"|t(locale) }} {{ country }}{% if !country_code.is_empty() %}{% endif %}
{{ t_city }}{{ "City"|t(locale) }} {{ city }}
{{ t_proxy }}{% if is_proxy %}{{ t_yes }}{% else %}{{ t_no }}{% endif %}{{ "Proxy"|t(locale) }}{% if is_proxy %}{{ "Yes"|t(locale) }}{% else %}{{ "No"|t(locale) }}{% endif %}
{{ t_vpn }}{% if is_vpn %}{{ t_yes }}{% else %}{{ t_no }}{% endif %}{{ "VPN"|t(locale) }}{% if is_vpn %}{{ "Yes"|t(locale) }}{% else %}{{ "No"|t(locale) }}{% endif %}
{{ t_hosting }}{% if is_hosting %}{{ t_yes }}{% else %}{{ t_no }}{% endif %}{{ "Hosting"|t(locale) }}{% if is_hosting %}{{ "Yes"|t(locale) }}{% else %}{{ "No"|t(locale) }}{% endif %}
{{ t_tor }}{% if is_tor %}{{ t_yes }}{% else %}{{ t_no }}{% endif %}{{ "Tor"|t(locale) }}{% if is_tor %}{{ "Yes"|t(locale) }}{% else %}{{ "No"|t(locale) }}{% endif %}
@@ -123,17 +123,17 @@
-
-

{{ t_faq }}

+
+

{{ "FAQ"|t(locale) }}

- {{ t_faq_cli_q }} + {{ "How to use this service from the command line"|t(locale) }}
-

{{ t_faq_cli_a }}

-

{{ t_faq_cli_query_current }}

+

{{ "You can use curl, httpie, wget, or whatever command line tool you prefer. Here's an example with curl:"|t(locale) }}

+

{{ "Check your current IP:"|t(locale) }}

curl {{ site_domain }}
-

{{ t_faq_cli_query_own }}

+

{{ "Look up information about your own IP:"|t(locale) }}

curl {{ site_domain }}/asn
 
 curl {{ site_domain }}/org
@@ -149,7 +149,7 @@ curl {{ site_domain }}/vpn
 curl {{ site_domain }}/hosting
 
 curl {{ site_domain }}/tor
-

{{ t_faq_cli_json }}

+

{{ "Or get everything in JSON format:"|t(locale) }}

curl {{ site_domain }}/json
 {
   "ip": "1.1.1.1",
@@ -160,7 +160,7 @@ curl {{ site_domain }}/tor
"asn": { ... }, "proxy": { ... } } -

{{ t_faq_cli_specific }}

+

{{ "Look up information about a specific IP:"|t(locale) }}

curl {{ site_domain }}/json?ip=1.1.1.1
 {
   "ip": "1.1.1.1",
@@ -176,39 +176,39 @@ curl {{ site_domain }}/tor
- {{ t_faq_ipv46_q }} + {{ "How do I force IPv4 or IPv6?"|t(locale) }}
-

{{ t_faq_ipv46_a|safe }}

+

{{ "Use curl -4 or curl -6 to specifically check your IPv4 or IPv6 address."|t(locale)|safe }}

- {{ t_faq_json_q }} + {{ "How do I get a JSON response?"|t(locale) }}
-

{{ t_faq_json_a|safe }}

+

{{ "Send a request to the /json endpoint, or send a request with the application/json header."|t(locale)|safe }}

- {{ t_faq_automate_q }} + {{ "Can I call your service programmatically?"|t(locale) }}
-

{{ t_faq_automate_a1 }}

-

{{ t_faq_automate_a2|safe }}

+

{{ "Sure, but please respect our rate limits. Normally it's 100 RPM, and under heavy load we may drop it to 50 or 30 RPM."|t(locale) }}

+

{{ "The API is meant for manual use or small projects. If your site uses our API to look up visitor IPs, please use a message queue so requests don't block. If your project has high traffic or needs low latency, you're better off using our open source offline database: Merged IP Database. That's actually what this project uses under the hood."|t(locale)|safe }}

- {{ t_faq_data_q }} + {{ "Where does the IP data come from?"|t(locale) }}
-

{{ t_faq_data_a|safe }}

-

{{ t_faq_data_attr }}

+

{{ "Geolocation data mainly comes from the free databases by Maxmind and DB-IP. AS data comes from IPinfo's free database. Proxy data comes from my own OpenProxyDB."|t(locale)|safe }}

+

{{ "Data attributions:"|t(locale) }}

- {{ t_faq_selfhost_q }} + {{ "Can I run my own instance?"|t(locale) }}
-

{{ t_faq_selfhost_a }}

+

{{ "Yes, the source code and database are both open source and on GitHub:"|t(locale) }}

- {{ t_faq_diff_q }} + {{ "How is this website different from other IP lookup sites?"|t(locale) }}
-

{{ t_faq_diff_a1 }}

-

{{ t_faq_diff_a2 }}

-

{{ t_faq_diff_a3 }}

+

{{ "The biggest thing is proxy detection. Our database covers proxy related data and the accuracy is really good. We've tested it privately against commercial databases like IPinfo's, and we hold up just as well, and actually do better on residential proxy detection."|t(locale) }}

+

{{ "We also have better IPv6 geolocation coverage since we merge multiple databases together, so the data ends up being more complete."|t(locale) }}

+

{{ "The UX is also better than most IP lookup sites out there. The site runs without any JavaScript, and we only pull in a minimal amount of external resources (fonts and icons), so it loads fast on the first visit."|t(locale) }}

- {{ t_faq_stable_q }} + {{ "Is this service reliable?"|t(locale) }}
-

{{ t_faq_stable_a1 }}

-

{{ t_faq_stable_a2 }}

-

{{ t_faq_stable_a3 }}

+

{{ "The whole thing is written in Rust, so performance is great. It can handle L7 DDoS traffic and stay up fine. It runs on a 2 core 2 GB VPS, which is already more than enough. The only thing that could cause real trouble is a large scale L7 DDoS, but we have Cloudflare in front of us."|t(locale) }}

+

{{ "It costs me $18.00/month to run, which is pretty cheap. I'm not going to shut it down over hosting costs anytime soon, and there won't be any ads."|t(locale) }}

+

{{ "This service is not going to rug pull on you."|t(locale) }}

- {{ t_faq_sponsor_q }} + {{ "How can I support this service?"|t(locale) }}
-

{{ t_faq_sponsor_a }} networkcatlol@gmail.com

+

{{ "I accept crypto donations. If you want to contribute, reach out at:"|t(locale) }} networkcatlol@gmail.com

@@ -276,7 +276,7 @@ curl {{ site_domain }}/tor -{% endblock %} +{% endblock %} \ No newline at end of file