首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java TCP获取域名?

问Java TCP获取域名?
EN

Stack Overflow用户
提问于 2015-05-26 03:07:38
回答 2查看 234关注 0票数 0

如何从TCP连接获取的域名?

因为我正在尝试制作一个代理类型的软件,但它必须检测到域是什么,然后去它需要的地方。然而,我不确定如何从客户端获取域名。

EN

回答 2

Stack Overflow用户

发布于 2015-05-26 03:16:10

没有从TCP连接中获取目标域或主机名的通用方法,因为连接仅由其目标IP地址定义,而不是由主机名定义,并且单个目标IP地址可能有多个名称。但是,虽然没有从所有TCP连接中获取目标名称的通用方法,但使用HTTP之上的一些协议是可能的:

对于HTTP,您可以查看HTTP Host header,它包含目标主机名,并由几乎所有的堆栈设置(对于SSL,您可以尝试从

  • 握手中的初始ClientHello消息中提取主机名,以防客户端使用SNI (服务器名称指示)。所有的现代浏览器都使用SNI,但像IE8这样的老浏览器不会,也不会使用老的Java、Python、Perl、ruby...应用程序。
票数 1
EN

Stack Overflow用户

发布于 2015-05-26 03:22:32

您可以使用以下代码片段,它将提供本地域名-

代码语言:javascript
复制
try {
      InetAddress me = InetAddress.getLocalHost();
      String dottedQuad = me.getHostAddress();
      System.out.println("My address is " + dottedQuad);
 } catch (UnknownHostException e) {
      System.out.println("I'm sorry. I don't know my own address.");
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30444583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档