3322 动态域名更新 IP 程序补丁

3322 动态域名更新 IP 程序补丁因为使用的是动态 IP 远程访问比较麻烦 所以一般会申请一个 3322 的动态域名 然后通过更新域名对应的 IP 来实现域名访问远程主机的目的 在 linux 下 3322 的网站提供了用 lynx 来更新 IP 的命令 但是不知从何时开始 这命令已经不好使了 输出的错误如下 lynx nbsp mime header nbsp auth xxxx xxxx http www 3322 org dyn

因为使用的是动态 IP,远程访问比较麻烦,所以一般会申请一个 3322 的动态域名,然后通过更新域名对应的 IP 来实现域名访问远程主机的目的。

在 linux 下,3322 的网站提供了用 lynx 来更新 IP 的命令。但是不知从何时开始,这命令已经不好使了。输出的错误如下:

  1. $lynx -mime_header -auth=xxxx : xxxx “http://www.3322.org/dyndns/update?system=dyndns&hostname=xxxx.3322.org”
  2. Can‘t Access `file://localhost/home/xxxx/:’
  3. Alert!: Unable to access document.
  4. lynx: Can’t access startfile
  5. Can‘t Access `file://localhost/home/xxxx/:’
  6. Alert!: Unable to access document.
  7. Can‘t Access `file://localhost/home/xxxx/xxxx’
  8. Alert!: Unable to access document.
  9. lynx: Can’t access startfile
  10. lynx: Username and Password required!!!
  11. Can‘t Access `file://localhost/home/xxxx/:’
  12. Alert!: Unable to access document.
  13. Can‘t Access `file://localhost/home/xxxx/xxxx’
  14. Alert!: Unable to access document.
  15. Looking up www.3322.org
  16. Making HTTP connection to www.3322.org
  17. Sending HTTP request.
  18. HTTP request sent; waiting for response.
  19. Alert!: Access without authorization denied — retrying
  20. Retrying with access authorization information.
  21. Looking up www.3322.org
  22. Making HTTP connection to www.3322.org
  23. Sending HTTP request.
  24. HTTP request sent; waiting for response.
  25. Alert!: Can‘t retry with authorization!  Contact the server’s WebMaster.
  26. Can‘t Access `http://www.3322.org/dyndns/update?system=dyndns&hostname=xxxx.3322.org’
  27. Alert!: Unable to access document.
  28. lynx: Can’t access startfile

后发现原因: 户名和密码之间的空格是不需要的,被误导了,唉。。。

修正后,结果正常。

  1. HTTP/1.1 200 OK
  2. Server: nginx
  3. Date: Sat, 13 Dec 2008 11:29:48 GMT
  4. Content-Type: text/plain; charset=GBK
  5. Connection: close
  6. good xxx.xxx.xx.xx

不过,还是看看 3322 提供的 linux 版客户端吧。

先看 binary 版本: http://www.3322.org/download/ez-ipupdate-3.0.10-linux-i386.tgz

  1. $ ./ez-ipupdate
  2. ./ez-ipupdate: relocation error: ./ez-ipupdate: symbol errno, version
  3.  GLIBC_2.0 not defined in file libc.so.6 with link time reference

看看 libc.so.6 的版本:

  1. $ /lib/libc.so.6
  2. GNU C Library stable release version 2.7, by Roland McGrath et al.
  3. Copyright (C) 2007 Free Software Foundation, Inc.
  4. This is free software; see the source for copying conditions.
  5. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
  6. PARTICULAR PURPOSE.
  7. Compiled by GNU CC version 4.2.4 (Ubuntu 4.2.41ubuntu1).
  8. Compiled on a Linux >>2.6.2416-server<< system on 20080912.
  9. Available extensions:
  10.         crypt add-on version 2.1 by Michael Glad and others
  11.         GNU Libidn by Simon Josefsson
  12.         Native POSIX Threads Library by Ulrich Drepper et al
  13.         BIND-8.2.3-T5B
  14. For bug reporting instructions, please see:

  15. .

没法用了,用源码编译吧。

源码版本:http://www.3322.org/download/ez-ipupdate-3.0.10.tgz

make 的时候出错:

  1. gcc  -g -O2  -o ez-ipupdate  ez-ipupdate.o conf_file.o md5.o cache_file.o pid_file.o
  2. /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in conf_file.o
  3. /lib/libc.so.6: could not read symbols: Bad value
  4. collect2: ld returned 1 exit status
  5. make: * [ez-ipupdate] Error 1

主要是 extern int errno; 惹的祸,patch 之。

  1. diff -uNr ez-ipupdate-3.0.10/conf_file.c ez-ipupdate-3.0.10_diff/conf_file.c
  2. — ez-ipupdate-3.0.10/conf_file.c  2000-10-23 10:36:18.000000000 +0800
  3. +++ ez-ipupdate-3.0.10_diff/conf_file.c 2008-12-12 23:32:53.000000000 +0800
  4. @@ -36,13 +36,14 @@
  5.  #include 
  6.  #include 
  7. +#include 
  8.  #if HAVE_STRERROR
  9. extern int errno;
  10. +//extern int errno;
  11.  #  define error_string strerror(errno)
  12.  #elif HAVE_SYS_ERRLIST
  13.  extern const char *const sys_errlist[];
  14. extern int errno;
  15. +//extern int errno;
  16.  #  define error_string (sys_errlist[errno])
  17.  #else
  18.  #  define error_string “error message not found”
  19. diff -uNr ez-ipupdate-3.0.10/error.h ez-ipupdate-3.0.10_diff/error.h
  20. — ez-ipupdate-3.0.10/error.h  2000-11-25 06:46:37.000000000 +0800
  21. +++ ez-ipupdate-3.0.10_diff/error.h 2008-12-12 23:31:59.000000000 +0800
  22. @@ -1,12 +1,14 @@
  23.  #ifndef _ERROR_H
  24.  #define _ERROR_H
  25. +#include 
  26. +
  27.  #if HAVE_STRERROR
  28. extern int errno;
  29. +//extern int errno;
  30.  #  define error_string strerror(errno)
  31.  #elif HAVE_SYS_ERRLIST
  32.  extern const char *const sys_errlist[];
  33. extern int errno;
  34. +//extern int errno;
  35.  #  define error_string (sys_errlist[errno])
  36.  #else
  37.  #  define error_string “error message not found”

现在 patch 完成,ez-ipupdate 可以工作了。

  1. $ ./ez-ipupdate -c qdns.conf
  2. ez-ipupdate Version 3.0.10
  3. Copyright (C) 19992000 Angus Mackay.
  4. no update needed at this time

IP 都没改变,不用更新了。
























版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203404.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午9:53
下一篇 2026年3月19日 下午9:53


相关推荐

  • 5gwifi信道哪个最好,wifi信道在哪里设置如何检测哪个路由器信道最快

    5gwifi信道哪个最好,wifi信道在哪里设置如何检测哪个路由器信道最快5G的WIFI信道选择相当重要,在不同的国家为了保证政府与军用部分与5G相交频道的使用,通过网卡驱动锁定或路由器固件锁定了5G的WIFI信道使用权限,而这些被锁定的频道,使用性能都是相对好,受到自然或非自然因素干扰最少的;而突破这些限制,才能发挥5G的WIFI真正性能。  双频路由器5ghz设置哪个信道最好  1、国内规定可用的5G信道只有149、153、157、161、165这5个(…

    2022年5月2日
    4.7K
  • 小程序跳转到其他小程序

    小程序跳转到其他小程序我记得在之前的几个月小程序跳转必须是同一主体 同一公众号 但是现在不用了 可以随便跳转了 一 使用限制 1 需要用户触发跳转从 2 3 0 版本开始 若用户未点击小程序页面任意位置 则开发者将无法调用此接口自动跳转至其他小程序 2 需要用户确认跳转从 2 3 0 版本开始 在跳转至其他小程序前 将统一增加弹窗 询问是否跳转 用户确认后才可以跳转其他小程序

    2026年3月18日
    2
  • 通过maven,给没有pom文件的jar包生成pom文件,maven项目引入本地jar包

    通过maven,给没有pom文件的jar包生成pom文件,maven项目引入本地jar包问题一 经常遇到公司私服或者中央仓库没有的 jar 包 然后通过各种渠道找到了解决问题的 jar 包 但是发现没有 pom 文件 maven 项目引入之后 还有 maven 在本地仓库找不到对应 jar 包的 pom 文件 打包的时候会在私服下载对应 jar 包的 pom 文件而抛出异常 通过 maven 就可以解决这个问题 前提是你安装了 maven 然后在命令行执行命令就 OK 了 ERROR Failedtoex

    2026年3月19日
    3
  • select 函数详解

    select 函数详解Unix 系统下解释 函数原型 intselect intmaxfdp fd set readfds fd set writefds fd set errorfds structtimeva timeout select 函数的主要用途是什么 select 函数是一个监控函数 用来监控插口的状态 插口就是指的是文件描述符 Unix Linux 一切皆文件 select 函数能够监控插口状态 如下表 具体解释 select 的参数 先解释第五个参数 最后一个参数 st

    2026年3月17日
    3
  • 文心一言4.5使用教程详解

    文心一言4.5使用教程详解

    2026年3月12日
    3
  • 微信开放平台扫码登陆

    微信开放平台扫码登陆微信授权扫码登陆微信开放平台提供了两种登陆方式,一种是会跳转到一个很丑很丑,只有一个二维码的界面里;另一种则是可以自己定制化的(二维码内嵌到自己网站内的方式)第一种方式的完成非常简单,但是第二种方式,就需要前后台都做一些调整了微信扫码登陆的准备工作这是在开始做相关业务开发之前的一些东西去微信开放平台中注册一个账号,并完成自己的开发者资质认证(这个链接应该点不过去,他们token是明…

    2022年6月5日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号