苹果系统Mac OSX用花生壳phddns
- 博客分类:
- 苹果系统 Mac OSX
- gcc程序
- Linux
刚刚修改了一下花生壳的文件,介绍给大家方法
1.
下载花生壳文件phddns-2.0.3.16858.tar.gz
这个文件是花生壳官方的linux版
重新编译OSX版
附件有编译好的phddns-2.0.3.16858-osx.tar.bz2
中有一个phddns文件夹可以有简单设定
2.
你的系统要有xcode喽
tar xzvf phddns-2.0.3.16858.tar.gz
cd phddns-2.0.3.16858
按官网的方法
不过这里一会要修改的
因为OSX的 net/if.h 中的 struct ifreq 结构有所不同
seazouMacBook:phddns-2.0.3.16858 qvb3d$ aclocal
seazouMacBook:phddns-2.0.3.16858 qvb3d$ autoconf
seazouMacBook:phddns-2.0.3.16858 qvb3d$ automake
seazouMacBook:phddns-2.0.3.16858 qvb3d$ ./configure
一大堆设定信息.....
seazouMacBook:phddns-2.0.3.16858 qvb3d$ make
编译时可能还会遇到 /bin/sh: config.status Makefile
的错误
自己手工输信这行命令
/bin/sh config.status
就可以继续make
phruncall.c: In function ‘ShowNic’:
phruncall.c:551: error: ‘struct ifreq’ has no member named ‘ifr_hwaddr’
phruncall.c:551: error: ‘struct ifreq’ has no member named ‘ifr_hwaddr’
phruncall.c:551: error: ‘struct ifreq’ has no member named ‘ifr_hwaddr’
phruncall.c:551: error: ‘struct ifreq’ has no member named ‘ifr_hwaddr’
phruncall.c:551: error: ‘struct ifreq’ has no member named ‘ifr_hwaddr’
phruncall.c:551: error: ‘struct ifreq’ has no member named ‘ifr_hwaddr’
make[1]: *** [phruncall.o] Error 1
make: *** [all-recursive] Error 1
怎么办?
seazouMacBook:phddns-2.0.3.16858 qvb3d$ cd src
seazouMacBook:src qvb3d$ vi phruncall.c
(gg551) 快找到551行内容改
if (!(ioctl(fd, SIOCGIFADDR, (char *) &buf[interface]))) {
printf("[%s] = [IP:%s][MAC:%02x:%02x:%02x:%02x:%02x:%02x]\n",buf[interface].ifr_name,\
inet_ntoa(((struct sockaddr_in *)(&buf[interface].ifr_ifru.ifru_addr)) -> sin_addr),\
&buf[interface].ifr_ifru.ifru_addr.sa_data[0],\
&buf[interface].ifr_ifru.ifru_addr.sa_data[1],\
&buf[interface].ifr_ifru.ifru_addr.sa_data[2],\
&buf[interface].ifr_ifru.ifru_addr.sa_data[3],\
&buf[interface].ifr_ifru.ifru_addr.sa_data[4],\
&buf[interface].ifr_ifru.ifru_addr.sa_data[5]);
改ifr_addr为ifr_ifru.ifru_addr
改ifr_hwaddr为ifr_ifru.ifru_addr
cd ..
make
cd src
得到phddns
使用方法支官网上看吧
http://service.oray.com/question/116.html
以下不是原创是官网的引用:
*********************************************************************************************************************
一、安装说明(以CentOS 5为例)
1、安装必要的开发包
[root@localhost ~]# yum install gcc gcc-c++ autoconf automake
2、下载phddns-2.0.2.16556.tar.gz到某一个目录
[root@localhost ~]# wget http://download.oray.com/peanuthull/phddns-2.0.2.16556.tar.gz
3、解压所有文件
[root@localhost ~]# tar zxvf phddns-2.0.2.16556.tar.gz
4、进入目录并编译
[root@localhost ~]# cd phddns-2.0.2.16556
[root@localhost phddns-2.0.2.16556]# aclocal
[[email protected] phddns-2.0.2.16556]# autoconf
[[email protected] phddns-2.0.2.16556]# automake
[[email protected] phddns-2.0.2.16556]# ./configure
[[email protected] phddns-2.0.2.16556]# make
[[email protected] phddns-2.0.2.16556]# cd src
[[email protected] src]# ls -l phddns
-rwxr-xr-x 1 root root 80968 Aug 2 11:18 phddns
5、执行编译好的程序并配置(默认使用/etc/phlinux.conf,如果不存在这个文件则自动进入交互配置)
[[email protected] src]# ./phddns
输入服务器地址,如无特殊情况可使用默认值
Enter server address(press ENTER use phlinux3.oray.net):
输入您的Oray帐号名称
Enter your Oray account:
对应的Oray帐号密码
Password:
选择帮定的网卡,如无特殊,默认即可
Network interface(s):
eth0:192.168.141.18
lo:127.0.0.1
Choose one(default eth0):
选择日志保存到哪个文件
Log to use(default /var/log/phddns.log):
保存配置文件,选择yes则直接保存到/etc/phlinux.conf,输入other可以指定文件
Save to configuration file (/etc/phlinux.conf)?(yes/no/other):
接下来程序将已交互模式开始运行
192.168.141.18
NIC bind success
OnStatusChanged okConnecting
OnStatusChanged okDomainListed
OnDomainRegistered skyvense22.gicp.net
OnStatusChanged okDomainsRegistered
UserType: 0
看到上面这些就表示登录成功,这个时候可以按ctrl+c先退出程序
6、将phddns拷贝到你希望的位置
[[email protected] src]# cp phddns /usr/bin/
7、以后台模式启动花生壳并检查运行情况
[[email protected] ~]# /usr/bin/phddns -c /etc/phlinux.conf -d
phlinux started as daemon!
[[email protected] ~]# tail /var/log/phddns.log
2011/08/02 11:28:58.256| ExecuteUpdate OK, BeginKeepAlive!
2011/08/02 11:29:59.354| SendKeepAlive() 8208
2011/08/02 11:30:00.355| RecvKeepaliveResponse() Data comes, OPCODE:8272
2011/08/02 11:30:00.356| Keepalive response received, client ip: 116.231.123.96
2011/08/02 11:31:00.447| SendKeepAlive() 8208
2011/08/02 11:31:01.450| RecvKeepaliveResponse() Data comes, OPCODE:8272
2011/08/02 11:31:01.450| Keepalive response received, client ip: 116.231.123.96
8、退出花生壳
查看进程ID
[[email protected] ~]# ps -A | grep phlinux
13731 ? 00:00:00 phlinux
让后台进程退出
[[email protected]ost ~]# kill -9 13731
9、将花生壳加到系统启动时运行
[[email protected] ~]# vi /etc/rc.local
在文件的末尾加上一行:/usr/bin/phlinux -c /etc/phlinux.conf -d
二、花生壳Linux版本命令行参数说明
[[email protected] ~]# /usr/bin/phlinux -h
Peanuthull Linux-core 2.0 by oray.com, copyright 2011
Peanuthull Linux-core Help
--first-run
-f, run for the first time
用于首次启动时配置参数
--interact
-i, run as interactive mode
program will request for necessary parameters.
this mode will automatically enabled at first running,
or your configuration file has been lost.
启动交互模式
--daemon
-d, run as a daemon
program will quit after put itself to background,
and continue running even you logout,
you can use kill -9 <PID> to terminate.
后台模式
--config
-c, run with configuration file
program will run with the file
指定使用哪一个配置文件
--user
-u, run as the user
program will run as the user
以指定用户启动后台进程
--help
-h, print this screen.
Please visit http://www.oray.com for detail.
三、常见问题
如何手动修改登陆的用户名及密码?
您可以直接编辑/etc/phlinux.conf文件,对登陆用户名及密码进行修改。
花生壳日志保存路径
/var/log/phddns.log
为什么花生壳无法登陆?
花生壳使用的通信端口是TCP:6060和UDP:6060(方向:OUT),请确认防火墙没有把这几个通信端口封掉。
如何查看花生壳当前运行状态?
查看日志:
[[email protected] ~]# tail /var/log/phddns.log
2011/08/02 11:28:58.256| ExecuteUpdate OK, BeginKeepAlive!
2011/08/02 11:29:59.354| SendKeepAlive() 8208
2011/08/02 11:30:00.355| RecvKeepaliveResponse() Data comes, OPCODE:8272
2011/08/02 11:30:00.356| Keepalive response received, client ip: 116.231.123.96
2011/08/02 11:31:00.447| SendKeepAlive() 8208
2011/08/02 11:31:01.450| RecvKeepaliveResponse() Data comes, OPCODE:8272
2011/08/02 11:31:01.450| Keepalive response received, client ip: 116.231.123.96
如何在其他平台(非X86)编译运行?
交叉编译mips cpu版本方法:
1、安装交叉工具并配置环境
........
2、配置参数
./configure --host=i386-linux --target=mipsel-linux --build=mipsel-linux CXX=mipsel-linux-gcc CC=mipsel-linux-gcc LD=mipsel-linux-ld
3、make
4、最后静态链接下
mipsel-linux-gcc -g -O2 -o phlinux -s main.o phupdate.o PHGlobal.o PHSocket.o md5.o log.o generate.o coder.o blowfish.o bitstream.o base64.o ConvertUTF.o CCmdParser.o PhClient.o PhUpdater.o /opt/openwrt/mipsel-linux/lib/librt.a /opt/openwrt/mipsel-linux/lib/libstdc++.a //opt/openwrt/mipsel-linux/lib/libc.a
5、压缩下(好放到路由器的小空间)
upx -o phlinux2 phlinux