哪位 老大 帮我看下这个是怎么回事-新问题有程序
c:\program files\microsoft visual studio\myprojects\ftp\1.cpp(35) : error C2065: 'sprintf' : undeclared identifier
c:\program files\microsoft visual studio\myprojects\ftp\1.cpp(50) : error C2065: 'printf' : undeclared identifier
我用libnids 和 winpcap 开发包做的 安装没有问题
还有 我编译libinds 里面自带的程序事例 也有上面的问题
新问题又出来了
1.obj : error LNK2001: unresolved external symbol "void __cdecl nids_run(void)" (?nids_run@@YAXXZ)
1.obj : error LNK2001: unresolved external symbol "void __cdecl nids_register_tcp(void *)" (?nids_register_tcp@@YAXPAX@Z)
1.obj : error LNK2001: unresolved external symbol "char * nids_errbuf" (?nids_errbuf@@3PADA)
1.obj : error LNK2001: unresolved external symbol "int __cdecl nids_init(void)" (?nids_init@@YAHXZ)
Debug/1.exe : fatal error LNK1120: 4 unresolved externals
Error executing link.exe.
build不是链接库的问题 我都连好了的 估计是版本问提 我没libnids -1.19在windows的版本 哪未有的给我传个好不
我把程序贴上来 希望哪位高手帮我解决下 谢谢了 需要用到libnids1.19-win32 和 winpcap3.0 以上好象 要在libnids1.17-win32 和 winpcap3.0 我的QQ156282546 再次谢谢各位了
#include "nids.h"
#include <stdio.h>
char ascii_string[10000];
char* char_to_ascii(char ch)
{
char *string;
ascii_string[0]=0;
string=ascii_string;
if(isgraph(ch))
*string++=ch;
else if(ch==' ')
*string++=ch;
else if(ch=='\n'||ch=='\r')
*string++=ch;
else
*string++='.';
*string=0;
return ascii_string;
}
//分析ftp回掉函数
void ftp_protocol_callback(struct tcp_stream* ftp_connection,void** arg)
{
int i;
char address_string[1024];
char content[65535];
char content_urgent[65535];
struct tuple4 ip_and_port=ftp_connection->addr;
strcpy(address_string,inet_ntoa(*((struct in_addr *)&(ip_and_port.saddr))));
sprintf(address_string+strlen(address_string),": %i",ip_and_port.source);
strcat(address_string,"<--->");
strcat(address_string,inet_ntoa(*((struct in_addr*)&(ip_and_port.daddr))));
sprintf(address_string+strlen(address_string),":%i",ip_and_port.dest);
strcat(address_string,"\n");
switch(ftp_connection->nids_state)
{
case NIDS_JUST_EST:
if((ftp_connection->addr.dest==21)||(ftp_connection->addr.source==20))
{
ftp_connection->client.collect++;
ftp_connection->server.collect++;
ftp_connection->client.collect_urg++;
ftp_connection->client.collect_urg++;
if(ftp_connection->addr.dest==21)
printf("%s FTP客户端与服务器建立控制连接\n",address_string);
if(ftp_connection->addr.source==20)
printf("%s FTP服务器与客户端建立控制连接\n",address_string);
}
return;
case NIDS_CLOSE:
printf("-------------------\n");
if(ftp_connection->addr.dest==21)
printf("%s FTP客户端与服务器建立控制连接关闭\n",address_string);
if(ftp_connection->addr.source==20)
printf("%s FTP服务器与客户端建立控制连接关闭\n",address_string);
return;
case NIDS_RESET:
printf("-------------------\n");
if(ftp_connection->addr.dest==21)
printf("%s FTP客户端与服务器建立连接被REST关闭\n",address_string);
if(ftp_connection->addr.source==20)
printf("%s FTP服务器与客户端建立连接被RESET关闭\n",address_string);
return;
case NIDS_DATA:
{
struct half_stream* hlf;
if(ftp_connection->server.count_new_urg)
{
printf("-------------------\n"); strcpy(address_string,inet_ntoa(*((struct in_addr*)&(ip_and_port.saddr))));
sprintf(address_string+strlen(address_string),": %i",ip_and_port.source);
strcat(address_string,"urgent---->");
strcpy(address_string,inet_ntoa(*((struct in_addr*)&(ip_and_port.daddr))));
sprintf(address_string+strlen(address_string),": %i",ip_and_port.dest);
strcat(address_string,"\n");
address_string[strlen(address_string)+1]=0;
address_string[strlen(address_string)]=ftp_connection->server.urgdata;
printf("%s",address_string);
return;
}
if(ftp_connection->client.count_new_urg)
{
printf("-------------------\n");
strcpy(address_string,inet_ntoa(*((struct in_addr*)&(ip_and_port.saddr))));
sprintf(address_string+strlen(address_string),": %i",ip_and_port.source);
strcat(address_string,"<----urgent");
strcpy(address_string,inet_ntoa(*((struct in_addr*)&(ip_and_port.daddr))));
sprintf(address_string+strlen(address_string),": %i",ip_and_port.dest);
strcat(address_string,"\n");
address_string[strlen(address_string)+1]=0;
address_string[strlen(address_string)]=ftp_connection->client.urgdata;
printf("%s",address_string);
return;
}
if(ftp_connection->client.count_new)
{
hlf=&ftp_connection->client;
strcpy(address_string,inet_ntoa(*((struct in_addr*)&(ip_and_port.saddr))));
sprintf(address_string+strlen(address_string),": %i",ip_and_port.source);
strcat(address_string,"<----urgent");
strcpy(address_string,inet_ntoa(*((struct in_addr*)&(ip_and_port.daddr))));
sprintf(address_string+strlen(address_string),": %i",ip_and_port.dest);
strcat(address_string,"\n");
printf("-------------------\n");
printf("%s",address_string);
memcpy(content,hlf->data,hlf->count_new);
content[hlf->count_new]='\0';
if(ftp_connection->addr.source==20)
{
printf("传输的数据为:\n");
for(i=0;i<hlf->count_new;i++)
{
printf("%s",char_to_ascii(content));
}
printf("\n");
}
else
{
if(content[0]=='1'||content[0]=='2'||content[0]=='3'||content[0]=='4'||content[0]=='5')
printf("FTP服务器响应状态代码为:%c%c%c\n",content[0],content[1],content[2]);
if(strncmp(content,"220",3)==0)
printf(" 新连接的用户服务已经准备就绪\n");
if(strncmp(content,"125",3)==0)
printf("数据连接已经打开,准备传送");
if(strncmp(content,"226",3)==0)
printf("数据连接已经关闭,请求文件操作完成\n");
for(i=0;i<hlf->count_new;i++)
{
printf("%s",char_to_ascii(content));
}
}
}
else
{
hlf=&ftp_connection->server;
strcpy(address_string,inet_ntoa(*((struct in_addr*)&(ip_and_port.saddr))));
sprintf(address_string+strlen(address_string),": %i",ip_and_port.source);
strcat(address_string,"---->");
strcpy(address_string,inet_ntoa(*((struct in_addr*)&(ip_and_port.daddr))));
sprintf(address_string+strlen(address_string),": %i",ip_and_port.dest);
strcat(address_string,"\n");
printf("-----------------------------------------");
printf("%s",address_string);
memcpy(content,hlf->data,hlf->count_new);
content[hlf->count_new]='\0';
if(ftp_connection->addr.source==20)
printf("FTP服务器向FTP客户端发送信息\n");
else
printf("");
for(i=0;i<hlf->count_new;i++)
{
printf("%s",char_to_ascii(content));
}
printf("\n");
}
}
default:
break;
}
return;
}
void main()
{
if(!nids_init())
{
printf("出现错误:%s\n",nids_errbuf);
exit(1);
}
nids_register_tcp(ftp_protocol_callback);
nids_run();
}
[ 本帖最后由 dreamldc 于 2006-5-17 17:40 编辑 ]