I have a weird issue that has me stumped trying to resolve a hostname of an instance. My app is running in 3 regions AMS, LAX, and SIN. When running: > hostname -i inside each instance I get following results:
- ams: 220.127.116.11
- lax: fdaa:x:xxxx:xxx:xxx:x:xxxx:x
- sin: fdaa:x:xxxx:xxx:xxx:x:xxxx:x
I would expect ams to return fdaa:x:xxxx:xxx:xxx:x:xxxx:x
Any ideas why this is not the case?
This is a good bug.
In short, it’s obscure
hostname behavior. The instance ID for that VM is
22117900, which is what we set as the hostname. Since that’s all digits, the
hostname -i command assumes that’s an exact IP address, and simply converts it to an IP instead of doing the normal lookup. If you plug
22117900 into this tool, you’ll see what it’s doing: Decimal to IP Converter - Convert Integer to IP - Online - Browserling Web Developer Tools
This is a more reliable way to get the private IP, assuming that’s what you’re after.
/# grep fly-local-6pn /etc/hosts | cut -f 1
hostname -I behaves as you’d expect:
/# hostname -I
172.19.0.90 172.19.0.91 fdaa:x:xxxx:xxx:xxx:x:xxxx:x
Thanks Kurt! That solves it.