Ответ 1
Если браузеры не начнут передавать эту информацию через DOM, в настоящее время они этого не делают. Есть navigator
javascript-объекты, которые содержат много вещей, но не то, что вы ищете. Недавно я также читал новости о том, что некоторые сотовые операторы добавляли файлы cookie в HTTP-запросы, сделанные на их телефонах. Было установлено, что они добавляют идентификаторы клиентов в файлы cookie (огромное нарушение безопасности!).
Mobile Safari добавляет новые дополнения DOM, но не то, о чем вы просите.
За исключением этих параметров, вы не можете. Слои интернет-протокола предназначены для инкапсуляции и скрытия деталей нижних слоев. Вы не можете обнаружить Edge, 3G или Wifi больше, чем вы можете обнаружить кабель, DSL или более тонкую оптику.
Наконец, , даже если вы могли бы получить эту информацию, это не принесло бы вам пользы, если бы у вас не было сведений о каждом node в вашем TCP-соединении. Например, я мог бы выполнить следующую настройку:
iPad ---WiFi----> iPhone Hotspot ---3G---> Carrier ---unknown--->>>
Добавление
В 2012-2013 гг. W3C выполнялся API сетевой информации, который был нацелен на предоставление "интерфейса для веб-приложений для доступа к базовой информации о подключении устройства". В то время API указал, что "оценочная" полоса пропускания для браузера будет доступна через navigator.connection.bandwidth
. По состоянию на апрель 2014 года эта работа с тех пор была прекращена!
Обновление: По состоянию на 20 октября 2015 года над этим API продолжается работа. Вы можете найти последние черновики проектов для API сетевой информации на страницах github W3C.