美文网首页
C/C++ 查询 公网 IP

C/C++ 查询 公网 IP

作者: 星星之火666 | 来源:发表于2019-05-27 21:49 被阅读0次

入口链接:(http://2019.ip138.com/ic.asp)

代码:

    char buf[300] = {}; // 把从网页中读出的数据放在此处
    char strIP[16] = {};  // IP 最终存放处
    char fileName[] = "c:\\users\\fire\\desktop\\ip.txt_net";

    // 将网页数据写入 c:\users\fire\desktop\ip.txt_net 文件中
    URLDownloadToFile(0, _T("http://2019.ip138.com/ic.asp"), CString(fileName), 0, NULL);

    FILE* fp = fopen(fileName, "r");
    if (fp)  // 文件打开成功
    {
        fseek(fp, 0, SEEK_SET); // 以文件头为基准,偏移 0 个字节,即文件指针 指向 文件开始
        fread(buf, 1, sizeof(buf), fp);
        fclose(fp);

        // 在 buf 中查找 '[' 的位置,在 '[' 和 ']' 之间的就是 IP 地址
        char* iIndex = strstr(buf, "[");
        char* iEnd;

        if (iIndex)  // iIndex 为 '[' 首次出现的地址
        {
            iEnd = strstr(iIndex, "]");
            strncpy(strIP, iIndex + 1, iEnd - iIndex - 1);
        }
        else
        {
            MessageBox(_T("所查询的网页没有 IP 地址"));
        }
    }
    else  // 文件打开失败
    {
        CString err;
        err.Format(_T("%d"), errno);
        MessageBox(_T("打开文件出错,错误代码:" + err));
    }

    remove(fileName); // 删除文件

相关文章

网友评论

      本文标题:C/C++ 查询 公网 IP

      本文链接:https://www.haomeiwen.com/subject/eaoktctx.html