请大家刚我翻译一段代码,我实在看不太懂,谢谢啦

2025-01-20 22:37:35
推荐回答(2个)
回答1:

GetRemoteName 得到域名. 域名取自 LPNETRESOURCE 数据(结构) 成员 lpRemoteName:
str = lpNetRS->lpRemoteName;

第二个,GetRemoteIP,是得到IP。
它的前面部分与GetRemoteName一样,先得到域名:
strName = lpNetRS->lpRemoteName;
再用 gethostbyname()函数,从域名取得 IP 信息:
host = gethostbyname(strName);
host 也是 数据(结构)。
它的成员 host->h_addr_list[0] 是字符串,里面含 4段 IP 数据。
转换到 in_addr 数据(结构):
ptr = (in_addr *)host->h_addr_list[0];

in_addr 结构:
typedef struct in_addr {
union {
struct{
unsigned char s_b1,
s_b2,
s_b3,
s_b4;
} S_un_b;
struct {
unsigned short s_w1,
s_w2;
} S_un_w;
unsigned long S_addr;
} S_un;
} IN_ADDR;

取出4段IP数值,对照上面结构,就懂下面表达式的意思了。
(又是指针,又是union,又是成员!)
int a = ptr->S_un.S_un_b.s_b1;
int b = ptr->S_un.S_un_b.s_b2;
int c = ptr->S_un.S_un_b.s_b3;
int d = ptr->S_un.S_un_b.s_b4;

回答2:

你是网上下的程序,自己看不懂?
第一个方法是得到域名,第二个是得到域内IP.
LPNETRESOURCE这些都是数据类型。你可以到google上去查它们是干什么的。
总之你把上面看不懂的代码挨个到google上搜就对了。
我想自己的问题自己解决是最好的
你说呢?