diff --git a/ReadMe.txt b/ReadMe.txt index 65b4a19..77c6163 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -203,3 +203,7 @@ TestRun在写入开机自启动项时先提升权限,以防止因权限不足 2019.5.6 当TestRun、ClientDemo运行时若未成功加载ServerDll.dll,则给出提示。 所有项目均采用平台工具集"Visual Studio 2012 - Windows XP (v110_xp)",以支持在XP上运行。 + +2019.5.7 +1、添加对远程IP使用域名时的支持,若IP为域名,先将域名进行解析后再连接。 +2、添加文档“使用花生壳.txt”,介绍了如何使用花生壳软件搭建远程监控系统。 diff --git a/client/IOCPClient.cpp b/client/IOCPClient.cpp index 7bd5661..753def9 100644 --- a/client/IOCPClient.cpp +++ b/client/IOCPClient.cpp @@ -87,6 +87,13 @@ IOCPClient::~IOCPClient() m_bWorkThread = S_END; } +// ȡIPַ +inline string GetIPAddress(const char *hostName) +{ + struct hostent *host = gethostbyname(hostName); + return host ? inet_ntoa(*(struct in_addr*)host->h_addr_list[0]) : ""; +} + BOOL IOCPClient::ConnectServer(char* szServerIP, unsigned short uPort) { m_sClientSocket = socket(AF_INET,SOCK_STREAM, IPPROTO_TCP); // @@ -100,7 +107,10 @@ BOOL IOCPClient::ConnectServer(char* szServerIP, unsigned short uPort) sockaddr_in ServerAddr; ServerAddr.sin_family = AF_INET; // IP ServerAddr.sin_port = htons(uPort); - ServerAddr.sin_addr.S_un.S_addr = inet_addr(szServerIP); + // szServerIPֿͷΪIPת + string server = ('0' <= szServerIP[0] && szServerIP[0] <= '9') + ? szServerIP : GetIPAddress(szServerIP); + ServerAddr.sin_addr.S_un.S_addr = inet_addr(server.c_str()); if (connect(m_sClientSocket,(SOCKADDR *)&ServerAddr,sizeof(sockaddr_in)) == SOCKET_ERROR) { diff --git a/使用花生壳.txt b/使用花生壳.txt new file mode 100644 index 0000000..60d4ea4 --- /dev/null +++ b/使用花生壳.txt @@ -0,0 +1,13 @@ +1、启动Yama监控服务端,记住内网IP和监听端口Port. + +2、在花生壳内网穿透添加端口映射,将内网IP和监听端口Port映射到花生壳域名host及花生壳端口port. + +3、在Yama生成客户端页面,输入host和port生成监控客户端. + +4、将ClientDemo部署到需要被监控的电脑上运行,即可开始远程监控. + +参考资料 + +花生壳(内网穿透)服务做远程桌面登录:https://service.oray.com/question/1824.html + +2019-5-7 \ No newline at end of file