Does the link preview in mobile messaging make it possible to determine someone’s IP Address by sending them a text?

sms link preview
Does the preview generated on SMS messages allow you to get a user’s IP Address by sending them a link to a webserver that you control?

Recently I received a text on my Google Pixel 3 with a web link. It loaded a preview of the website and I wondered whether or not it would be possible to determine someone’s IP Address by sending them a text. This would be possible because in order to display a preview, a request must be sent to the web-server. The process of doing this would send an IP Address to the web-server, which would send data to that address.

First I tested this on my Google Pixel. As I expected it generated the preview on a server, which then sent the preview to my phone. The log entry can be viewed below.

66.249.83.17 - - [10/Jun/2019:22:40:24 -0400] "GET / HTTP/1.1" 200 461 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Chrome/56.0.2924.87 Safari/537.36 Google (+https://developers.google.com/+/web/snippet/)"

Because the preview content was received by the server and then sent to the phone the owner of a web-server would not be able to determine the IP Address of an Android phone user simply by sending that user a text.

Next I tested on Apple devices. What surprised me was that the preview was generated on the device rather than a server. When a link is sent via SMS the user sees an option that says ‘tap to preview’. Once they tap to preview their device sends 4 GET requests to the web-server. In other words, as soon as the user clicks ‘tap to preview’ the owner of the web-server has their IP Address. Logs can be viewed below (IP address has been changed, obv).

255.255.35.168 - - [11/Jun/2019:20:04:42 -0400] "GET / HTTP/1.1" 200 461 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/601.2.4 (KHTML, like Gecko) Version/9.0.1 Safari/601.2.4 facebookexternalhit/1.1 Facebot Twitterbot/1.0"
 255.255.35.168 - - [11/Jun/2019:20:04:42 -0400] "GET /apple-touch-icon-precomposed.png HTTP/1.1" 404 529 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/601.2.4 (KHTML, like Gecko) Version/9.0.1 Safari/601.2.4 facebookexternalhit/1.1 Facebot Twitterbot/1.0"
 255.255.35.168 - - [11/Jun/2019:20:04:42 -0400] "GET /apple-touch-icon.png HTTP/1.1" 404 517 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/601.2.4 (KHTML, like Gecko) Version/9.0.1 Safari/601.2.4 facebookexternalhit/1.1 Facebot Twitterbot/1.0"
 255.255.35.168 - - [11/Jun/2019:20:04:42 -0400] "GET /favicon.ico HTTP/1.1" 404 508 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/601.2.4 (KHTML, like Gecko) Version/9.0.1 Safari/601.2.4 facebookexternalhit/1.1 Facebot Twitterbot/1.0"

After playing around with Apple devices a little more I realized that when a user sends a link via iMessages the preview is generated automatically. However the device sending the link sends 4 GET requests to the server, generates the preview, and sends it over iMessages. Therefor it is not possible to get someone’s IP Address by sending them a link over iMessages.

In conclusion you cannot get someone’s IP Address over Apple devices or Android devices simply by sending them a link. Google Messages uses a server to pull content. Apple devices render the content client side. However SMS messages require the user to click ‘tap to preview’ and iMessages render the content on the sending device (so the webserver would only have the sender’s Address).

Published by burnedfaceless

Brian Abbott is a student at Georgia Southern University's Armstrong campus in Savannah, GA.

Leave a comment

Your email address will not be published. Required fields are marked *