首页 > 代码库 > 苹果系统Mac OSX用花生壳phddns

苹果系统Mac OSX用花生壳phddns

苹果系统Mac OSX用花生壳phddns

    博客分类:
  •  

  • 苹果系统 Mac OSX

  • gcc程序

  • Linux

 

 

苹果系统Mac OSX用花生壳phddns

刚刚修改了一下花生壳的文件,介绍给大家方法

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

[root@localhost phddns-2.0.2.16556]# autoconf

[root@localhost phddns-2.0.2.16556]# automake

[root@localhost phddns-2.0.2.16556]# ./configure

[root@localhost phddns-2.0.2.16556]# make

[root@localhost phddns-2.0.2.16556]# cd src

[root@localhost src]# ls -l phddns

-rwxr-xr-x 1 root root 80968 Aug 2 11:18 phddns

 

 

5、执行编译好的程序并配置(默认使用/etc/phlinux.conf,如果不存在这个文件则自动进入交互配置)

 

 

[root@localhost 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拷贝到你希望的位置

 

[root@localhost src]# cp phddns /usr/bin/

 

 

7、以后台模式启动花生壳并检查运行情况

 

 

[root@localhost ~]# /usr/bin/phddns -c /etc/phlinux.conf -d

phlinux started as daemon!

[root@localhost ~]# 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

[root@localhost ~]# ps -A | grep phlinux

13731 ? 00:00:00 phlinux

让后台进程退出

[root@localhost ~]# kill -9 13731

 

 

9、将花生壳加到系统启动时运行

 

[root@localhost ~]# vi /etc/rc.local

在文件的末尾加上一行:/usr/bin/phlinux -c /etc/phlinux.conf -d

 

 

 

二、花生壳Linux版本命令行参数说明

 

 

[root@localhost ~]# /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),请确认防火墙没有把这几个通信端口封掉。

 

 

 

如何查看花生壳当前运行状态?

 

 

查看日志:

[root@localhost ~]# 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

 


苹果系统Mac OSX用花生壳phddns