9 ms·
Seems to rely on https://api.ipify.org/ https://api.ipify.org/ to determine public IP. Is there any Cloudflare service one can use to determine the IP instead?
by codetrotter 2y ago
Seems to rely on https://api.ipify.org/ https://api.ipify.org/ to determine public IP.
Is there any Cloudflare service one can use to determine the IP instead? That way there’s not an extra company in addition to Cloudflare itself that you need to continue existing.
- teamspirit 2y agohttps://www.cloudflare.com/cdn-cgi/trace https://www.cloudflare.com/cdn-cgi/trace will return your ip.
- mxuribe 2y agoThe (above) shared url leveraging the cloudflare.com domain name seems to show ip v6 address, while I've noticed that the following defaults to showing ip v4 address: https://1.1.1.1/cdn-cgi/trace https://1.1.1.1/cdn-cgi/trace Pick your poison as you wish - either is great! :-)
- codetrotter 2y agoI’d pick the one that supports IPv6 and then make two separate requests to it. One request over IPv4 and one over IPv6. curl -4 https://www.cloudflare.com/cdn-cgi/trace curl -6 https://www.cloudflare.com/cdn-cgi/trace Also the reason that the 1.1.1.1 one shows only IPv4 address is because 1.1.1.1 is itself an IPv4 address. So any connection to it will have to be using IPv4.
- tcfhgj 2y agocould you not retrieve your ipv6 directly from the system?
- codetrotter 2y agoYes, but getting it in a response from an external server means I don’t have to be specific about which interface to get the IPv6 address of and so on.
- tcfhgj 2y agothe same specific interface used to contact the external server
- wizzwizz4 2y agoi.e., an arbitrarily-selected interface capable of reaching Cloudflare.
- codetrotter 2y agoWhich is neatly abstracted away so you don’t have to think about it unless you want to. And therefore reaching out to an external server and having it say where the request came from is the path of least resistance for a script that can work across different hosts with minimal machine specific configuration. Listen, if you want to check the IPv6 address from the interface list go ahead I’m not trying to stop you. But because I anyway need to reach a third party to know my own IPv4 address then yeah when that third party can also tell me IPv6 address I’m gonna do it that way.
- graton 2y agoThat requires running it on the router/device which gets the public IP address. By using the service you can update your DNS IP address on a system that is behind the router.
- tcfhgj 2y agoWhat do you mean? Every device gets a public ipv6 (usually).
- graton 2y agoI have a router connected to the internet, it gets the public IP address. The router is connected to the internal network in my home and has the IP address of 192.168.1.1. Behind the router is my computer which has a non-public IP address, for example 192.168.1.2. My computer is the one I want to run the program to update the DNS entry. My computer does not know what the public IP address is by looking at its interfaces.
- macote 2y agoThis is how I use it in my bash script: current_ip=$(curl -s -X GET https://1.1.1.1/cdn-cgi/trace | grep -Po "(?<=ip=)(.*)")
- immibis 2y agoWorks on every cloudflare-MITMed domain btw.
- victorbjorklund 2y agoYou could do it with a cloudflare worker that just returns the ip address of the request
- victorbjorklund 2y agoNevermind. The other answer is better
- gothink 2y agoI feel like it's worth mentioning icanhazip.com [0] as well, since it's now run by Cloudflare [1]. Until recently switching to a custom CF worker, that's been by go-to for ages. [0]: https://www.icanhazip.com/ https://www.icanhazip.com/ [1]: https://major.io/p/a-new-future-for-icanhazip/ https://major.io/p/a-new-future-for-icanhazip/
- noname120 2y agoDoes Cloudflare have a history of sunsetting products they've bought? Acquisitions by Google, Apple, Meta, etc. are yellow flags that the product may cease to exist soon. I wonder if Cloudflare has a better track record in that regard.
- godzillabrennus 2y agoNo one sunsets products like Google. I’m in the middle of transferring all my domains from Squarespace thanks to Googles sale of that business to that incredibly lousy vendor.
- CSSer 2y agoUgh, same. You’re right. Nothing is safe at Google or even a safe bet with Google. Look at third-party cookies. I can’t believe there isn’t outrage in the streets over the fact that they beat that drum for four straight years and now they suddenly have a change of heart. At some point their rationale has to become irrelevant. It’s simply unprofessional behavior.
- b0ner_t0ner 2y ago> Nothing is safe at Google Google Ads
- CSSer 2y agoThis narrative might be shifting in realtime with the LLM race and privacy wars. How do I advertise in Gemini? Do Google users want me to? I’ve worked in and around digital advertising and marketing for the better part of a decade. We look at Google with all the admiration one would have for a pet crocodile.
- chickenballs 2y agoYou could host your own VPS for a few dollars specifically for the purpose of responding back to you with your own residential IP. But that wouldn’t be free. In my experience, you have to be careful if relying on one IP source because if they give you the wrong one, then your servers could be MITM’d. I say this because I have a script which does this exact thing, and found a couple of these ‘what’s my ip’ services giving me someone else’s IP. Because of that, I randomly select a few IP addresses and ensure they are identical before I trust any of them.
- deleted 2y ago[deleted]
- fullspectrumdev 2y agoKind of, you can use the CF CDN to grab an external IP by using any CF site. Example: https://www.fullspectrum.dev/a-less-suspect-way-to-get-external-ips-thanks-to-cloudflare/ https://www.fullspectrum.dev/a-less-suspect-way-to-get-exter...
- genewitch 2y agothere's a way to tell caddy server to host its own access.log So you have some junk VPS or whatever that just has caddy hosting its log with an easy to remember domain (they're cheap enough), and you go like "curl http://easydomain.com/idreallylikemyip http://easydomain.com/idreallylikemyip" and then once more: curl http://easydomain.com/N http://easydomain.com/N | grep "idreallylikemyip" the code that used to work is on my github, i uploaded it there a week or two ago. Someone who needs a way to find out the public ipv4 of any device not just their own can probably figure out how to get it to work again!
- dathery 2y agoYou can have Caddy return the user's IP address directly: https://caddy.community/t/caddy-server-that-returns-only-ip-address-as-text/6928 https://caddy.community/t/caddy-server-that-returns-only-ip-... Similar things are also possible with nginx and Apache.
- genewitch 2y agothis was implemented in 2018, but it is good to know. it also doubled as a dumb way to pass messages between hosts.
- deleted 2y ago[deleted]
- BasiliusCarver 2y agoI’ve used this: dig @1.1.1.1 ch txt whoami.cloudflare +short
- codetrotter 2y agoThat's pretty neat! And they offer a similar service on their DNS resolver over IPv6. This page lists the IPv6 addresses to use when connecting to their resolver over IPv6 https://developers.cloudflare.com/1.1.1.1/ip-addresses/ https://developers.cloudflare.com/1.1.1.1/ip-addresses/ and with that I just tried dig @2606:4700:4700::1111 ch txt whoami.cloudflare +short And it works, returning the IPv6 address that the request came from :)