请问在ISAPI中如何获得用户浏览器所在的IP地址和浏览器类型和操作系统?

flyinghu99 2000-04-26 04:22:00
...全文
124 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Neo_Matrix 2000-09-25
  • 打赏
  • 举报
回复
理论上,建议你看一看HTTP请求结构,ISAPI过滤器等理论。
实际操作上,如下(VC6.0,SP4,NT4.0,SP6,IIS3.0):
1.用APPWIZARD生成一个ISAPI过滤器DLL,其中只需要选择Incoming raw data and headers服务就可以;
2.刚才的操作生成一个CHttpFilter::OnReadRawData(CHttpFilterContext *pCtxt,PHTTP_FILTER_RAW_DATA pRawData)函数,你需要重载它,以实现你想要的东西.举个例子:
{
char szTemp[64];
char szWhichUWant[2048];
DWORD dwSize=64;
BOOL bRet;

bRet=pCtxt->GetServerVariable("REMOTE_ADDR",szTemp,&dwSize) //取得客户请求
中的CLIENT IP部分.
if(bRet && dwSize > 0){
strcat(szWhichUWant,"CLIENT IP:");
strcat(szWhichUWant,szTemp);
strcat(szWhichUWant,"\n");
}

bRet=pCtxt->GetServerVariable("SERVER_NAME",szTemp,&dwSize);
//在客户的请求中取得服务器的IP;
if(bRet && dwSize > 0){
strcat(szWhichUWant,"SERVER IP:");
strcat(szWhichUWant,szTemp);
strcat(szWhichUWant,"\n");
}

strncat(szWhichUWant,(const char*)pRawData->pvInData,pRawData->cbInData);
//嘿嘿!!乖乖龙的东,不光有你要的哟,还有...自己去接受惊喜吧!
return SF_STATUS_REQ_NEXT_NOTIFICATION;
}
3.编译以后放入什么地方我就不说了,你应该知道的.
4.你自己到注册表注册,会不会?
5.如果你不会调试ISAPI扩展的话,可怜的你就得自己编一个将数据传出的函数,和一个将数据显示的函数.(这个世界就是这样,3.4.5如果你不会的话我可真的没办法帮你了,你得自己学了)
6.如果你真的按5那样自己写一些函数的话,你还的改变IIS的服务模式(你惨了!!不关我的事,你自己想学ISAPI的,要么你走下去,要么离开它!TO BE OR NOT TO BE ,THIS IS A QUESTION!)

-------------------------------OVER!--------------------------------------
BareHead 2000-09-18
  • 打赏
  • 举报
回复
调用api函数
GetEnvironmentVariable()
可得到各种环境变量

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧