Netexpert FAQ 网络分析专家学习建议入口 @netexpert成员申请指南
网络分析时代 netexpert积分规则的说明 Netis招贤纳士(2008年11月22日更新)
发新话题
打印

哪位 老大 帮我看下这个是怎么回事-新问题有程序

哪位 老大 帮我看下这个是怎么回事-新问题有程序

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 编辑 ]

TOP

缺少头文件 #include<stdio.h>

TOP

十分感谢

TOP

你那个新问题,是你没有指定链接库,我没用过libnids,你自己看看是哪个库,加到链接选项里就是了。
说了世上一无牵挂为何有悲喜
说了朋友相交如水为何重别离
说了少年笑看将来为何常回忆
说了青春一去无悔为何还哭泣

TOP

发新话题
版块跳转