codice:
#include <winsock.h>
#include <windows.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
SOCKET s1,s2;
WSADATA WSAdata;
struct sockaddr_in in1,in2;
HKEY hKey;
void connettiti(void)
{
int lenght;
WSAStartup(0x0202,&WSAdata);
s1=socket(PF_INET,SOCK_STREAM,0);
in1.sin_family=PF_INET;
in1.sin_port=htons(2003);
in1.sin_addr.s_addr=INADDR_ANY;
bind(s1,(struct sockaddr*)&in1,sizeof(struct sockaddr_in));
lenght=sizeof(struct sockaddr);
listen(s1,1);
printf("\nIN ATTESA...");
s2=accept(s1,(struct sockaddr*)&in2,(LPINT)&lenght);
printf("Ok...\n");
}
char* ricevi(char* buff,int lenght)
{
int i;
for (i=0;i<lenght;i++)
{
recv(s2,buff+i,1,0);
send(s2,buff+i,1,0);
}
return buff;
}
char* prendi_ProductID(char* buff)
{
unsigned long d=0xFF;
RegCreateKeyEx(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion",0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,NULL);
RegQueryValueEx(hKey,"ProductId",NULL,NULL,(LPBYTE)buff,&d);
RegCloseKey(hKey);
return buff;
}
int main(void)
{
char buffer[100];
while(1)
{
connettiti();
strcpy(buffer,"\rtoc toc neo... \r\ninserisci password:");
send(s2,buffer,strlen(buffer),0);
if (strncmp(ricevi(buffer,8),"01234567",8)==0)
{
strcpy(buffer,"\r\nlogin OK\r\nProductID:");
send(s2,prendi_ProductID(buffer),strlen(buffer),0);
}
shutdown(s1,2);
closesocket(s1);
shutdown(s2,2);
closesocket(s2);
WSACleanup();
}
return(0);
}
Il problema è che nn va!!