获取传入连接的域名
Get domain name of incoming connection
我在互联网上找不到有关此主题的任何信息,并在此处询问。例如,我有 IP 为 1.1.1.1 和 2.2.2.2 的服务器,以及指向它的两个域名 one.example.com 和 example2.net,以及 socke 在端口 1234 上侦听传入连接。
例如:
C/C++:
listenfd=socket(AF_INET, SOCK_STREAM, 0);
bind(...);
listen(...);
while(...) accept(...);
或爪哇:
ServerSocket socket = new ServerSocket(1234);
while(...) {
Socket connectionSocket = welcomeSocket.accept();
...
}
当客户端在我的套接字上接受时,我需要知道客户端使用什么域名/IP 进行连接。它可以是 one.example.com 或 example2.net 和/或IP 1.1.1.1或2.2.2.2(如果仅使用IP连接)。
Apache以某种方式确定了传入请求的ip/域,我需要在纯套接字代码中做这样的事情。C++(主)或Java(或任何其他)被接受,我需要知道这方面的机制。
IP 存储在
IP 数据包标头中,您可以从那里读取它。为了获得主机,您可能必须通过发送请求(或使用为您执行此操作的功能)来询问DNS服务器。即使在这个网站上,您也可以找到这两个问题的示例
相关文章:
- 当套接字连接断开时检测C/C++Unix
- 无法在windows上使用mingw将sqlite3与c连接
- 到连接组件算法的问题(递归)
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- 无法在C++中建立与MySQL数据库的连接
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 连接 dockerized 模型和 dockerized 数据库时出现"无法 SQLConnect"错误
- 使用 bfs 解决连接组件问题时得到错误的答案
- 在C++的两个字符串中连接以逗号分隔的唯一值
- 如何修复valgrind启动时的致命错误(与libc6-dbg和libc6-dbg:i386连接)
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- OSX蓝牙打开RFCOMMChannelAsync声称已连接,但未建立连接,并且从未调用过委托
- 在 libcurl 连接池中预创建连接
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- libcurl 和 DNS ttl 中的内部连接管理
- 如何应用 libcurl 的持久连接选项
- 提升 ASIO - io_service 不要等待连接到线程
- 获取传入连接的域名
- 在进行套接字编程时,查找域名然后连接到它的正确方法是什么?