- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
出于某种原因 valgrind
不断抛出以下错误:
==6263== Invalid read of size 4
==6263== at 0x40151B9: (within /lib/ld-2.7.so)
==6263== by 0x4005C29: (within /lib/ld-2.7.so)
==6263== by 0x4007A47: (within /lib/ld-2.7.so)
==6263== by 0x40114F3: (within /lib/ld-2.7.so)
==6263== by 0x400D585: (within /lib/ld-2.7.so)
==6263== by 0x4010F0D: (within /lib/ld-2.7.so)
==6263== by 0x4141391: (within /lib/tls/i686/cmov/libc-2.7.so)
==6263== by 0x400D585: (within /lib/ld-2.7.so)
==6263== by 0x4141554: __libc_dlopen_mode (in /lib/tls/i686/cmov/libc-2.7.so)
==6263== by 0x411B286: __nss_lookup_function (in /lib/tls/i686/cmov/libc-2.7.so)
==6263== by 0x411B39F: (within /lib/tls/i686/cmov/libc-2.7.so)
==6263== by 0x411CFC5: __nss_hosts_lookup (in /lib/tls/i686/cmov/libc-2.7.so)
==6263== Address 0x4183d24 is 36 bytes inside a block of size 37 alloc'd
==6263== at 0x4022AB8: malloc (vg_replace_malloc.c:207)
这是我的做法。发生这种情况的任何原因?谢谢
#include <arpa/inet.h>
#include <netdb.h>
#include <stdio.h>
#include <string.h>
char *IPtoHostname(const char *ipaddress)
{
struct hostent *host;
unsigned int ip = 0;
ip = inet_addr (ipaddress);
host = gethostbyaddr ((char *) &ip, sizeof (unsigned int), AF_INET);
if (host == NULL) return NULL;
return strdup(host->h_name);
}
int main () {
const char *ip = "65.55.4.170";
char *a = NULL;
a = IPtoHostname(ip);
printf ("%s\n", a);
free (a);
return 0;
}
更新:当我在 Linux hardy 2.6.24-16-generic
下运行时会发生它在 Ubuntu 9.10
下不会发生/p>
最佳答案
你的代码没问题(虽然你真的应该使用 in_addr_t
而不是 unsigned int
作为 IPtoHostname 中的变量
).ip
( )
Valgrind 报告是 well-known issue - 误报或 glibc 中的错误。
关于C-gethostbyaddr & Valgrind,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4309103/
标签的使用
我有一个使用此功能的 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)
我是一名优秀的程序员,十分优秀!