首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ruby Socket.gethostname in RHEL6

Ruby Socket.gethostname in RHEL6
EN

Stack Overflow用户
提问于 2015-04-28 13:34:53
回答 2查看 906关注 0票数 0

在RHEL5中,默认的Socket::gethostname返回没有域名的短主机名。在RHEL6中,它返回主机名,包括域名。

这是由RHEL6中不同的系统RHEL6功能造成的,这些功能可以在使用hostname -s的SH脚本中修复。在Ruby中有任何Socket::gethostname参数来修复它吗?

通过使用正则表达式或使用系统调用(例如'hostname -s'.strip )解析输出是可能的,但这既不是一个简单的解决方案,也不是一个好的解决方案。

你能帮忙吗?

谢谢简

EN

回答 2

Stack Overflow用户

发布于 2015-04-28 15:07:52

正如您在鲁比多+单击到切换源代码中可能看到的那样,gethostnamec stdlib的简单包装器。

也就是说,您可以尝试编译和执行以下代码。一旦它返回--而不是你想要的--你可能就被困在hostname -s上了。

代码语言:javascript
运行
复制
#include <unistd.h>
#include <stdio.h>

int main(int, char **) {
  char buf[1025];
  gethostname(buf, 1024);

  printf("%s\n", buf);
}
票数 0
EN

Stack Overflow用户

发布于 2015-10-23 05:34:51

您可以使用regex将所有内容返回到第一个“。”

代码语言:javascript
运行
复制
require 'socket'
hostname = Socket.gethostname[/^[^.]+/]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29921086

复制
相关文章

相似问题

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