Skip to content

Commit

Permalink
添加对域名的解析功能。
Browse files Browse the repository at this point in the history
  • Loading branch information
yuanyuanxiang committed May 7, 2019
1 parent b8249a2 commit e234b37
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 1 deletion.
4 changes: 4 additions & 0 deletions ReadMe.txt
Expand Up @@ -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”,介绍了如何使用花生壳软件搭建远程监控系统。
12 changes: 11 additions & 1 deletion client/IOCPClient.cpp
Expand Up @@ -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); //传输层
Expand All @@ -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)
{
Expand Down
13 changes: 13 additions & 0 deletions 使用花生壳.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

0 comments on commit e234b37

Please sign in to comment.