什么是localhost(127.0.0.1)?

本地主机(localhost)作为网络测试与应用开发中的关键概念,不仅用于测试Web应用程序和程序,也是网络管理员检查网络连接的常用工具。通过127.0.0.1这一IP地址,开发人员能在本地环境中模拟网络环境,测试应用程序的网络功能,同时网络管理员可通过它验证网络配置的正确性。此外,本地主机还能通过修改hosts文件来阻止恶意网站,增强系统的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是本地主机?

当你在计算机上 ping IP地址时,你尝试联系互联网上的另一台计算机,但是当你ping IP地址127.0.0.1时,你正在与本地主机通信。localhost 始终是你自己的计算机。当你呼叫本地主机时,你的计算机正在通话。你的计算机并不总是直接识别本地主机。在你的个人网络中,localhost有一个单独的IP地址,如192.168.0.1。(大多数情况下),与你在互联网上使用的IP地址不同。这通常由互联网服务提供商(ISP)动态分配。localhost可以看作是在你自己的计算机上使用的服务器。

该术语通常用于网络环境中。Localhost不仅是虚拟服务器的名称,还是它的域名。就像.example,.test或.invalid,。,。localhost是一个保留用于文档和测试目的的顶级域。访问域时,会触发环回。如果您在浏览器中访问“http:// localhost”,则请求将不会通过路由器转发到Internet。它将保留在你自己的系统中。Localhost的IP地址为127.0.0.1。这会引用你自己的服务器。

127.0.0.1 - loopback如何工作?

为了在网络内相互通信,使用IP地址。网络中的参与者拥有自己独特的地址。使用TCP / IP数据包能够到达正确的目的地。协议对传输控制协议(TCP)和因特网协议(IP)是因特网的一些主要特征。TCP / IP也在本地网络的Internet之外使用。Internet协议负责允许IP地址和子网掩码在传输期间寻址网络中的订户。

公共IP地址的分配由一个国际组织监管,该组织是互联网名称与数字地址分配机构(ICANN)。ICANN还负责域名系统(DNS)的域名分配。但某些地址范围是为特殊目的而保留的,例如127.0.0.0到127.255.255.255的范围。没有关于选择该范围的原因的可靠信息。互联网上的IP地址分为不同的类别。第一类A类以0.0.0.0(保留地址)开头,以127.255.255.255结束。127是A类网络的最后一个块。它的重要地位可能是其选择的原因。

在此地址范围内,可以设置Localnet。关于这个范围的特殊之处在于IP地址并不是唯一分配的,通​​常就是这种情况。它也是由ICANN保留的。

如果你在浏览器中输入IP地址或相应的域名,路由器会将你的请求转发到互联网,从而将你更正为服务器。这意味着如果你输入172.217.0.0,你将进入baidu主页,但情况与127.0.0.1不同。对此地址的请求不会转发到互联网。TCP / IP从第一个块(127)识别出您不想访问互联网,而是在呼叫您自己。然后,这会触发环回。
创建环回设备的原因是为了使你自己的计算机的反向链接正常工作。通过操作系统,这是一个创建的虚拟接口。该接口名为lo或lo0,也可以在Unix系统中使用ifconfig命令显示。Windows的类似命令是ipconfig

localhost用于什么?

开发人员使用本地主机来测试Web应用程序和程序。网络管理员使用环回来测试网络连接。localhost的另一个用途是hosts文件,你可以使用环回来阻止恶意网站。

对于测试目的 -

Web服务器主要使用本地主机来进行需要通过Internet进行通信的编程应用程序。在开发过程中,重要的是要确定应用程序是否在具有Internet访问权限后实际工作。只有在Internet上可以找到所需文件时,才能使用Localhosts的其他功能。我们可以看到在PC上打开HTML文档或将其加载到服务器并访问它之间存在差异。在没有测试的情况下发布产品没有意义。因此开发人员使用loopback来测试它们。它们可以刺激连接,同时还可以避免网络错误。连接完全保留在自己的系统中。

使用localhost进行测试的另一个好处是速度。通过互联网发送请求通常超过100毫秒。向localhost发送ping的最大传输时间仅为1毫秒。使用该技术也可以实现互联网协议的正确性。

如果要在PC上设置自己的测试服务器以通过localhost进行寻址,则需要正确的软件。可以使用专门设计用作本地主机的XAMPP等软件。

要阻止网站 -

Localhost也可以阻止主机文件。此文件是域名系统(DNS)的前身。在此IP地址可以分配给相应的域。在浏览器中输入网站地址时,域名将转换为IP地址。它曾经是主机文件,但今天通常使用全局DNS,但主机文件仍然存在于大多数操作系统中。在Windows中,该文件位于\ system32 \ drivers \ etc \ hosts下,与macOS和其他Unix系统一样,它位于/ etc / hosts下。

如果没有完成文件更改,可能会留下这两个条目:

127.0.0.1 localhost
:: 1 localhost

无需通过互联网完成localhost的名称解析。Localhost还可以使用主机文件来阻止某些网站。为此,必须将要阻止的网站输入到列表中,并且必须将IP地址127.0.0.1分配给域。如果您或恶意脚本尝试调用锁定的域,浏览器将首先检查hosts文件并在那里找到您的条目。域名0.0.0.0也可以使用。然后,浏览器将尝试使用127.0.0.1访问服务器上的相应网站。但是,浏览器不太可能找到它,因为请求的文件不会存在。但是,如果您自己的测试服务器已设置,那么浏览器可能会找到home.html,这只是你自己的文件。如果你尚未设置自己的测试服务器,则会显示错误消息而不是请求的网站。可以使用此技术关闭整个系统中的广告插入。要手动避免每个条目,你可以在Internet上找到已完成和定期扩展的主机文件。

`localhost` 是一个在计算机网络中常用的主机名,通常用于引用本地计算机自身。它在许多网络应用程序和配置中使用,特别是在开发和测试网络服务时。 ### `localhost` 的工作原理 `localhost` 通常解析为 IPv4 地址 `127.0.0.1` 或 IPv6 地址 `::1`。这些地址被称为回环地址(loopback address),它们指向本地计算机自身。回环地址的主要作用是允许本地计算机上的应用程序通过网络协议进行通信,而不依赖于实际的网络硬件。 ### 使用 `localhost` 的场景 1. **开发和测试**:在开发网络应用程序时,开发者通常会使用 `localhost` 来测试应用程序,而不需要将应用程序部署到远程服务器。 2. **本地服务**:一些本地服务(如数据库服务器、web 服务器等)默认绑定到 `localhost`,以便只能从本地计算机访问。 3. **网络配置**:在配置网络服务时,使用 `localhost` 可以确保服务只在本地可用,增加安全性。 ### 示例代码 以下是一个简单的 C++ 示例,演示如何使用 `localhost` 创建一个 TCP 服务器: ```cpp #include <iostream> #include <string> #include <boost/asio.hpp> using boost::asio::ip::tcp; int main() { try { boost::asio::io_context io_context; tcp::acceptor acceptor(io_context, tcp::endpoint(tcp::v4(), 8080)); std::cout << "Server is listening on localhost:8080" << std::endl; for (;;) { tcp::socket socket(io_context); acceptor.accept(socket); std::string message = "Hello from localhost!"; boost::asio::write(socket, boost::asio::buffer(message)); socket.close(); } } catch (std::exception& e) { std::cerr << e.what() << std::endl; } return 0; } ``` ### 解释 1. **Boost.Asio 库**:我们使用 Boost.Asio 库来处理网络通信。Boost.Asio 是一个跨平台的 C++ 库,用于网络和低级 I/O 编程。 2. **创建套接字**:我们创建一个 TCP 套接字,并将其绑定到 `localhost` 的 8080 端口。 3. **接受连接**:服务器接受来自客户端的连接请求,并发送一条消息。 ### 编译和运行 要编译和运行上述代码,请确保已安装 Boost 库。然后使用以下命令进行编译: ```sh g++ -o server server.cpp -lboost_system -pthread ``` 运行服务器: ```sh ./server ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值