| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3945 人关注过本帖, 1 人收藏
标题:请指点VFP如何通过域名获取IP?在网上下载的程序结果是0.0.0.0,请指点多谢 ...
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用TonyDeng在2012-10-9 21:03:07的发言:

先解决能不能运行的问题

不行啊 难道要下载VS2012?
图片附件: 游客没有浏览图片的权限,请 登录注册

点击后
图片附件: 游客没有浏览图片的权限,请 登录注册


梅尚程荀
马谭杨奚







                                                       
2012-10-09 21:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
奇怪,这个呢?
getip.exe.zip (51.5 KB)

授人以渔,不授人以鱼。
2012-10-09 22:06
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 42楼 TonyDeng
还是一样啊。。。
可能是删掉zip的时候破坏了文件?
你是用VS2012写的吧

梅尚程荀
马谭杨奚







                                                       
2012-10-09 22:32
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不是,应该是少了MSVC*.DLL的运行库。C程序最烦不能制作发布安装包,搞不清楚它到底需要哪几个.DLL。

授人以渔,不授人以鱼。
2012-10-09 22:35
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 44楼 TonyDeng
那怎么办 ?
貌似YTZN和taohua300两人都看到结果了?

梅尚程荀
马谭杨奚







                                                       
2012-10-09 22:48
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不知道。把源代码给你了吧:
程序代码:
#include <cstdio>
#include <WinSock2.h>
#include <conio.h>

#pragma comment(lib, "ws2_32.lib")

int main(int argc, char* argv[])
{
    WORD wVersionRequested;
    WSADATA wsaData;
    int err;
    wVersionRequested = MAKEWORD(2, 2);
    err = WSAStartup(wVersionRequested, &wsaData);
    if (err != 0)
    {
        printf_s("WSAStartup failed with error: %d\n", err);
        return 1;
    }
    if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2)
    {
        printf_s("Could not find a usable version of Winsock.dll\n");
        WSACleanup();
        return 1;
    }

    struct hostent *remoteHost;
    struct in_addr addr;
    remoteHost = gethostbyname(argv[1]);
    printf_s("struct hostent:\n");
    printf_s("\th_name: %s\n", remoteHost->h_name);
    printf_s("\th_length: %d\n", remoteHost->h_length);
    printf_s("\th_addrtype: %d\n", remoteHost->h_addrtype);
    if (remoteHost->h_addrtype == AF_INET)
    {
        int i = 0;
        while (remoteHost->h_addr_list[i] != 0)
        {
            addr.s_addr = *(u_long *) remoteHost->h_addr_list[i++];
            printf_s("IP Address #%d: %s, alias: %s\n", i, inet_ntoa(addr), remoteHost->h_aliases[i]);
        }
    }
       
    WSACleanup();

    _getch();
    return 0;
}

授人以渔,不授人以鱼。
2012-10-09 22:52
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 46楼 TonyDeng
哈哈 这下看到结果了 #include <WinSock2.h> 是写网络方面的东西吧
这个现在还啥都不知道哦。

梅尚程荀
马谭杨奚







                                                       
2012-10-09 23:05
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
那是WinSocket库的头,Windows系统封装好的底层通讯库,无论做网络还是点对点聊天、机器之间通讯,用它就可以了。你比较一下1楼的代码,其实就是调用这些API函数,也就是说,VFP此时是直接在使用API与系统沟通,与C是相同动作——大家都是依赖ws2_32.dll运行库,效率是没有差别的。

授人以渔,不授人以鱼。
2012-10-09 23:12
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 48楼 TonyDeng
哦 这样啊  我去看了下反汇编
图片附件: 游客没有浏览图片的权限,请 登录注册

这个警告应该没什么影响吧

图片附件: 游客没有浏览图片的权限,请 登录注册

如果F8直接两个CALL就出结果了
如果是F7就进入函数 出现一堆JMP 。。。
图片附件: 游客没有浏览图片的权限,请 登录注册



[ 本帖最后由 有容就大 于 2012-10-9 23:30 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-10-09 23:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
哦,它要MSVCR100D.DLL库。

授人以渔,不授人以鱼。
2012-10-09 23:39
快速回复:请指点VFP如何通过域名获取IP?在网上下载的程序结果是0.0.0.0,请指点 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047379 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved