- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
#include <netdb.h>
#include <stdio.h>
#include <sys/socket.h>
int main(int argc, char **argv)
{
char *ptr = NULL;
struct hostent *hptr = NULL;
struct in_addr *hipaddr = NULL;
ptr = argv[1];
inet_aton(ptr,hipaddr);
hptr = gethostbyaddr(hipaddr, 4, AF_INET);
printf("official hostname:%s\n",hptr->h_name);
return 0;
}
运行结果显示:segmentation fault (core dumped)。但我不知道如何让它工作。所以我需要一些帮助...
我把代码改成了这样:
#include <netdb.h>
#include <stdio.h>
#include <sys/socket.h>
int main(int argc, char **argv)
{
char *ptr = NULL;
struct hostent *hptr = NULL;
struct in_addr hipaddr ;
ptr = argv[1];
inet_aton(ptr,&hipaddr);
hptr = gethostbyaddr(&hipaddr, sizeof(hipaddr), AF_INET);
printf("official hostname:%s\n",hptr->h_name);
return 0;
}
然后就可以了!但为什么呢?
最佳答案
在第一个版本中,您将空指针传递给 inet_aton
。然后 inet_aton
尝试写入该地址并导致段错误。
inet_aton(ptr,hipaddr);//hipaddr is NULL
当您调用inet_aton
时,您需要传递一个指向in_addr
结构的指针。这就是您在第二个版本中所做的。
struct in_addr hipaddr;
inet_aton(ptr, &hipaddr);&hipaddr is a pointer to struct in_addr
关于c - 使用 gethostbyaddr() 时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15718398/
我有一个使用此功能的 django 应用程序,我正在尝试获取访问我的应用程序的 IP 地址的计算机名称。我正在使用 django-ipware 来执行此操作要获取客户端的 IP 地址,这部分工作正常。
我使用以下代码,结果是正确的,但 gethostbyaddr 需要大约 30 秒。 function IPAddrToName(IPAddr: string): string; var So
我正在为 telnet 客户端编写 C++ 代码。我在从用户输入中获取主机地址时遇到问题。 struct in_addr peers; cin>>peers; peerserver = gethost
#include #include #include #include #include int main () { in_addr ip; ip.s_addr = inet
出于某种原因 valgrind 不断抛出以下错误: ==6263== Invalid read of size 4 ==6263== at 0x40151B9: (within /lib/ld-
我正在提供一个IP地址:64.78.58.91,我想使用GetHostByAddr()win32 API检索主机名。 而不是返回www.ripcode.com,而是返回了intermedia.net
我正在尝试在 Google App Engine - Python 中使用 gethostbyaddr。 我有 import socket 然后 class BeatMail(webapp.Reque
我确实是 C 和套接字的初学者。我知道我不应该使用 gethostbyaddr 因为这是为了考试所以我必须使用他们告诉我使用的东西......我在 Linux 机器 (Ubuntu 14.04) 上使
我正在用c语言构建一个多客户端UDP服务器,但是当我尝试从系统连接到我的服务器时,我收到此错误gethostbyaddr上的错误:成功请找到下面的服务器代码。我已经尝试了类似问题的解决方案( geth
我想从主机名中获取 fqdn。我在 Linux 服务器上执行此命令:python -c “导入 sys、套接字;sys.stdout.write(socket.gethostbyaddr('')[0]
我有一个脚本可以从一个文件中读取地址并使用 socket.gethostbyaddr 查找它的主机名,但是这个函数的返回是困惑的并且看起来不正确。 写入目标文件的行是: destfile.write(
#include #include #include int main(int argc, char **argv) { char *ptr = NULL; struct hos
我知道这个问题之前在这里被问过,我阅读了所有答案,但无法自己解决这个问题。这是交易:我必须编写一个程序,它需要一堆互联网地址(例如 google.com、www.root.cz)并打印出正式名称、备用
socket.gethostbyname()当它的参数是一个真正的主机名时效果很好。但是当它是一个不存在的主机时,我会得到 3 秒的超时,然后是 socket.gaierror: [Errno 110
我正在尝试获取有关 IP 地址为 89.249.207.231 的主机的主机信息。我知道它存在,因为当我在浏览器的 url 字段中键入 IP 地址时,它会找到该页面。这是我的 C 代码。 #inclu
我有一个包含 IP 地址的变量。我正在尝试对其进行 nslookup,而不是返回 DNS 名称,我得到 0。我在 Linux 环境中。目标 IP 来自 vector (字符串 dest_ip = ve
如果我要求 gethostbyaddr() 查找 NAT 生成的 IP 地址,例如 192.168.0.4,我应该期望它起作用吗? 背景:我正在家里对一些用于网络环境的控制代码进行测试。有时,此代码会
为什么 gethostbyaddr($_SERVER['REMOTE_ADDR']) 返回一个 IP 地址,而不是它应该返回的计算机名称。它在办公室的 50 台计算机上按预期工作并返回计算机名称。目前
我有一个 Python 脚本来获取 IP 地址列表的主机名。该脚本在我从一台计算机运行时有效,但从另一台计算机运行时相同的脚本返回错误( [Errno 11004] host not found )。
我编写了一个脚本,该脚本遍历“0”网络(192.168.0。*)中的所有本地IP。 我使用socket.gethostbyaddr(ip_modified_by_the_loop_each_time)
我是一名优秀的程序员,十分优秀!