在 FireMonkey TWebBrowser 中指定 IP 地址

Specifying an IP Address in FireMonkey TWebBrowser

FireMonkey TWebBrowser 组件允许开发人员指定本地文件 (file://...) 或 URL (https://www...)。但是,似乎无法通过指定 IP 地址(192.168.1...http://192.168.1... 等)让浏览器工作。浏览器似乎挂起。

是否可以使用此组件指定 IP 地址?

我目前正在使用 Delphi 10.4.2 为 iPhone 开发。同一 phone 上的 Safari 访问 192.168.1... 地址没有问题。

使用 HTTPS 协议和 IP 地址导航到网站将在大多数浏览器中被阻止。为什么?用于确认特定网站有效性的网站证书是基于域的,而不是基于 IP 的。

这意味着只有当您使用为其颁发网站数字证书的有效域导航到该网站时,该网站才会被视为安全。

但是当您尝试使用托管它的服务器的 IP 地址导航到此类站点时,大多数浏览器会将站点证书标记为无效,从而停止导航到此类站点。这是为了防止您被重定向到不属于已颁发 Web 证书的特定域的另一台服务器。


PS:您甚至可以使用默认浏览器进行测试。尝试使用格式 https://x.x.x.x:443.

使用 URL 导航到 HTTPS 站点

请注意我是如何将 443 添加到指定的 URL 末尾的。 443 是默认的 HTTPS 端口。尽管您在 URL 中指定了 HTTPS 协议,但未将此端口号指定为 URL 的一部分,大多数浏览器将始终尝试使用用于 HTTP 的端口 80 进行导航=].

现在,如果网站同时支持 HTTP 和 HTTPS 协议,尽管您在 URL 中指定了 HTTPS 协议,但您最终可能会访问 HTTP 站点。


并且如果该 HTTP 网站提供自动重定向到 HTTPS 站点,您最终可能会实际访问该站点的 HTTPS 版本。但它不会是包含您指定的 IP 地址的 HTTPS 站点,而是该站点的正确域名。

您可以通过尝试使用上述方法导航到 https://142.250.180.174/ 来看到这一点,https://142.250.180.174/ 实际上是 google.com.

的服务器

注意:并非所有网站都支持此功能。例如,您无法使用这种方法访问 embarcadero.com 的 HTTPS 站点。