当前位置:首页 » 编程语言 » c语言扫描码

c语言扫描码

发布时间: 2022-03-09 03:54:16

c语言中读取键盘扫描码的问题

这个 C 语言的问题你可以发到shx.io 这个网站,这个程序员问答网站有很多大神,你复制一下发过来,我让朋友现在就帮你答

㈡ C语言,扫描条码(就是输入一串字符,不要想的太难)

首先要建立一个结构:

typedef struct
{
char code[50];
int count;
}USERCODE;

然后建立一个数组:

USERCODE myarray[MAX_CODE]; //MAX可以设为条码种类数。

然后就维护这个数组好了。
首先字符串和count初始化。
接着编写查找功能。
比较简单的法子是做一个循环,一个一个的比较。
for(int i=0;i<MAX_CODE;i++)
{
if(...)//myarray[i].code和输入的字符串比较,如果相等就给myarray[i].count++

}
最后是查询功能,还是用循环方式,比较关键字符串,条件成立就printf("%d",myarray[i].count)

当然查找和查询功能可以采用一些算法,如果你是按照顺序填充数组,就可以采用对半法。如果数组不是很大,不超过100,简单循环也没什么问题。

㈢ C语言程序,扫描条码(就是输入一串字符,不要想的太难)

其实就是一个数据库查询问题而已,
因为首先,的确不用管条码机怎么输入的,它相当于只有数字键及少数几个字母键的一个自动输入的键盘,模拟按键,需要做的输入焦点设置好,读取输入就行了。

读取后再查询,就不属于条码机的范畴了

㈣ 找一个ip扫描器的c语言代码

的IP冲突好使工具,曾经搞死过几十个网吧.

当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和交换机,让所有上网的流量必须经过病毒主机。其他用户原来直接通过交换机上网现在转由通过病毒主机上网,切换的时候用户会断一次线。由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢。当ARP欺骗的木马程序停止运行时,用户会恢复从交换机上网(此时交换机MAC地址表正常),切换过程中用户会再断一次线。该病毒发作时,仅影响同网段内机器的正常上网.

换个路由器吧,ARP病毒是利用网关做跳板的,从而对内网的IP进行干扰。况且ARP病毒使用的IP一般都是假IP,不会给你这么容易找到的。要防止服务器给ARP病毒干扰,装个ANTI ARP SNIFFER,GOOGLE一下就有了。

如果内网的用户比较少用互联网,那么应该在路由器上面封端口或者封IP,禁止那些没有必要办公的时候上网的用户,这也是为了降低内网爆发病毒的风险所采取的手段之一.
2.还是病毒

对于VIKING这个病毒,以及他带来的一大堆变种,其实要对付也不是难处。这东西利用扫描administrator和guest帐号口令为空的计算机,并通过共享迅速到处传播,但现在内网的用户多用windows,那个人机器上没有默认共享的?

买个交换机,带ACL功能的,把135.139.445这几个端口都在交换机上面封掉。由于带ACL功能的核心交换机上面一般带有背板缓冲,对于病毒所进行的大线程扫描来讲,可以在网络资源上保证内网的一定畅通。

你用的Symantec AntiVirus 10是网络版么?如果是的话,把每个客户端的策略都分发一遍,网络版杀毒软件的统一内网客户端策略可以保证内网的一定程度无毒性。
3.ping这个问题

这实在没什么好说的,病毒造成的扫描(包括VIKING一些变种)在寻找可传染主机的时候,为了加速扫描线程,都会寻求受传染主机的ICMP ECHO(也就是PING的回传值),给服务器启用个人版防火墙吧。什么?你没装防火墙?那就由得人家PING死服务器算了。

㈤ 怎么用fortify扫描c语言

不要被扫到啦 把线路板换成光纤的,把所有的金属都换成玻璃纤维的!身上带快铁皮,警报响了以后把铁皮交给安检,人带手机混过去 国贵族 放在脚

㈥ C语言中什么语句可以把扫描枪读取的条码作为输入变量使用

肯定是字符串啊,char * 或者char[]

linux 下C语言的syn扫描代码

//---------------------------------------------------------------------------
//Filename:ss.c
//Author:yunshu
//Write:2004-04-02
//Thanks Wineggdrop
//Modify:2004-09-08
//---------------------------------------------------------------------------

#include <winsock2.h>
#include <ws2tcpip.h>
#include <mstcpip.h>
#include <stdio.h>

#pragma comment(lib,"ws2_32.lib")

////////////////////////////////////////////////////////////////
//全局变量
////////////////////////////////////////////////////////////////

#define srcPort 88

char srcIP[20] = ;//定义源地址
char tgtIP[20] = ;//定义目的地址
int portNow;//定义正在扫描的端口

//标准端口列表
int ports[20] = ;

typedef struct ip_hdr
{
unsigned char h_verlen; //4位首部长度,4位IP版本号
unsigned char tos; //8位服务类型TOS
unsigned short total_len; //16位总长度(字节)
unsigned short ident; //16位标识
unsigned short frag_and_flags; //3位标志位
unsigned char ttl; //8位生存时间 TTL
unsigned char proto; //8位协议 (TCP, UDP 或其他)
unsigned short checksum; //16位IP首部校验和
unsigned int sourceIP; //32位源IP地址
unsigned int destIP; //32位目的IP地址
}IP_HEADER;

typedef struct tcp_hdr //定义TCP首部
{
USHORT th_sport; //16位源端口
USHORT th_dport; //16位目的端口
unsigned int th_seq; //32位序列号
unsigned int th_ack; //32位确认号
unsigned char th_lenres; //4位首部长度/6位保留字
unsigned char th_flag; //6位标志位
USHORT th_win; //16位窗口大小
USHORT th_sum; //16位校验和
USHORT th_urp; //16位紧急数据偏移量
}TCP_HEADER;

typedef struct tsd_hdr //定义TCP伪首部
{
unsigned long saddr; //源地址
unsigned long daddr; //目的地址
char mbz;
char ptcl; //协议类型
unsigned short tcpl; //TCP长度
}PSD_HEADER;

////////////////////////////////////////////////////////////////
//函数原形
////////////////////////////////////////////////////////////////

int send_packet();//发送数据函数
int recv_packet();//监听数据函数
USHORT checksum( USHORT *, int );//计算检验和函数
void usage( char * );//显示帮助函数
void check_port( char * );//判断端口是否开放函数

////////////////////////////////////////////////////////////////
//main函数
////////////////////////////////////////////////////////////////

int main( int argc , char *argv[] )
{
WSADATA WSAData;
DWORD thread_ID = 1;
char FAR hostname[128] = ;
HANDLE ThreadHandle[20];
struct hostent *phe;

if( argc != 2 )//检查命令行参数是否正确
{
usage( argv[0] );
exit( 0 );
}

if ( WSAStartup(MAKEWORD(2,2) , &WSAData) )
{
printf("WSAStartup Error...\n");
exit(0);
}

strcpy(tgtIP,argv[1]);//得到目标主机的ip地址

gethostname(hostname,128);//获取本机主机名

phe = gethostbyname(hostname);//获取本机ip地址结构

if(phe == NULL)
{
printf("Get LocalIP Error...\n");
}

strcpy(srcIP, inet_ntoa(*((struct in_addr *)phe->h_addr_list[0])));//得到本机ip地址

//调试用,注释掉
//printf("test\t%s\n",tgtIP);
//printf("test\t%s\n",srcIP);

//开启新线程,接受数据包,分析返回的信息
HANDLE RecvHandle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)recv_packet,NULL,0,&thread_ID);

Sleep(500);//休息一下再启动发送数据包函数

for(int tmp = 0; tmp < 20; tmp++)
{
++thread_ID;

//要扫描的端口
portNow = ports[tmp];

//开启新线程,发送数据包
ThreadHandle[tmp] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)send_packet,NULL,0,&thread_ID);

//防止生成线程过快,休息
Sleep(100);
}

DWORD WaitThread = WaitForMultipleObjects( 20 , ThreadHandle , TRUE , INFINITE );
if( WaitThread != WAIT_FAILED)
{
for( int n = 0 ; n < 20 ; n++ )
{
CloseHandle( ThreadHandle[n] );
}
}
CloseHandle( RecvHandle );

WSACleanup();
return 0;
}

//计算检验和函数,完全抄别人的
USHORT checksum(USHORT *buffer, int size)
{
unsigned long cksum=0;

while(size >1)
{
cksum += *buffer++;
size -= sizeof(USHORT);
}
if(size)
{
cksum += *(UCHAR*)buffer;
}
cksum = (cksum >> 16) + (cksum & 0xffff);
cksum += (cksum >> 16);
return (USHORT)(~cksum);
}

void usage(char *prog)
{
printf("===========================================\n");
printf("Used To Scan Remote Host's Ports\n");
printf("Usage:%s TargetIP\n",prog);
printf("===========================================\n");
exit(0);
}

//发送数据包的函数
int send_packet()
{
SOCKET sendSocket;
BOOL flag;
int timeout;
SOCKADDR_IN sin;
IP_HEADER ipHeader;
TCP_HEADER tcpHeader;
PSD_HEADER psdHeader;
char szSendBuf[60] = ;
int ret;
unsigned long source_ip;
unsigned long target_ip;

//建立原生数据socket
if((sendSocket = WSASocket(AF_INET, SOCK_RAW, IPPROTO_RAW, NULL, 0, WSA_FLAG_OVERLAPPED)) == INVALID_SOCKET)
{
printf("Socket Setup Error...\n");
return 0;
}

//设置自己填充数据包
if(setsockopt(sendSocket, IPPROTO_IP, IP_HDRINCL, (char *)&flag, sizeof(flag)) == SOCKET_ERROR)
{
printf("Setsockopt IP_HDRINCL Error...\n");
return 0;
}

//设置超时时间
timeout = 1000;
if(setsockopt(sendSocket, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout, sizeof(timeout)) == SOCKET_ERROR)
{
printf("Setsockopt SO_SNDTIMEO Error...\n");
return 0;
}

target_ip = inet_addr(tgtIP);
source_ip = inet_addr(srcIP);

sin.sin_family = AF_INET;
sin.sin_port = htons(portNow);
sin.sin_addr.S_un.S_addr = target_ip;

//填充IP首部
ipHeader.h_verlen = (4<<4 | sizeof(ipHeader)/sizeof(unsigned long));
ipHeader.total_len = htons(sizeof(ipHeader)+sizeof(tcpHeader));
ipHeader.ident = 1;
ipHeader.frag_and_flags = 0x40;
ipHeader.ttl = 128;
ipHeader.proto = IPPROTO_TCP;
ipHeader.checksum = 0;
ipHeader.sourceIP = source_ip;//源IP
ipHeader.destIP = target_ip;//目的IP

//填充TCP首部
tcpHeader.th_dport = htons(portNow);//目的端口
tcpHeader.th_sport = htons(srcPort); //源端口
tcpHeader.th_seq = 0x12345678;
tcpHeader.th_ack = 0;
tcpHeader.th_lenres = (sizeof(tcpHeader)/4<<4|0);
tcpHeader.th_flag = 2;//syn标志位。0,2,4,8,16,32->FIN,SYN,RST,PSH,ACK,URG(推测,哈哈)
tcpHeader.th_win = htons(512);
tcpHeader.th_urp = 0;
tcpHeader.th_sum = 0;

//填充tcp伪首部
psdHeader.saddr = ipHeader.sourceIP;
psdHeader.daddr = ipHeader.destIP;
psdHeader.mbz = 0;
psdHeader.ptcl = IPPROTO_TCP;
psdHeader.tcpl = htons(sizeof(tcpHeader));

//计算TCP校验和
memcpy(szSendBuf, &psdHeader, sizeof(psdHeader));
memcpy(szSendBuf + sizeof(psdHeader), &tcpHeader, sizeof(tcpHeader));

tcpHeader.th_sum = checksum((USHORT *)szSendBuf, sizeof(psdHeader) + sizeof(tcpHeader));

//计算IP检验和
memcpy(szSendBuf, &ipHeader, sizeof(ipHeader));
memcpy(szSendBuf + sizeof(ipHeader), &tcpHeader, sizeof(tcpHeader));
memset(szSendBuf + sizeof(ipHeader) + sizeof(tcpHeader), 0, 4);
ipHeader.checksum = checksum((USHORT *)szSendBuf, sizeof(ipHeader) + sizeof(tcpHeader));

memcpy(szSendBuf, &ipHeader, sizeof(ipHeader));
memcpy(szSendBuf + sizeof(ipHeader), &tcpHeader, sizeof(tcpHeader));

//发送数据包
ret = sendto(sendSocket, szSendBuf, sizeof(ipHeader) + sizeof(tcpHeader), 0, (struct sockaddr*)&sin, sizeof(sin));

if(ret == SOCKET_ERROR)
{
printf("Send Packet Error...\n");
return 0;
}
else return 1;
}

int recv_packet()
{
SOCKADDR_IN sniff;
SOCKET sock;
char recvBuffer[65000] = ;//缓冲区存放捕获的数据

//建立socket监听数据包
sock = socket(AF_INET,SOCK_RAW,IPPROTO_IP);

sniff.sin_family = AF_INET;
sniff.sin_port = htons(0);
sniff.sin_addr.s_addr = inet_addr(srcIP);

//绑定到本地随机端口
bind(sock,(PSOCKADDR)&sniff,sizeof(sniff));

//设置SOCK_RAW为SIO_RCVALL,以便接收所有的IP包
//来的
DWORD dwBufferLen[10] ;
DWORD dwBufferInLen = 1 ;
DWORD dwBytesReturned = 0 ;
WSAIoctl(sock,SIO_RCVALL,&dwBufferInLen,sizeof(dwBufferInLen),&dwBufferLen,sizeof(dwBufferLen),&dwBytesReturned,NULL,NULL);

while(TRUE)
{
memset(recvBuffer , 0 , sizeof(recvBuffer) );

//开始捕获数据包
int bytesRecived = recv(sock,recvBuffer,sizeof(recvBuffer),0);
if(bytesRecived <= 0)
{
break;
}
check_port(recvBuffer);
}
return 1;
}

void check_port(char *buffer)
{
IP_HEADER *ipHeader;//IP_HEADER型指针
TCP_HEADER *tcpHeader;//TCP_HEADER型指针

ipHeader = (IP_HEADER *)buffer;
tcpHeader = (TCP_HEADER *) (buffer+sizeof(IP_HEADER));

if(ipHeader->sourceIP != inet_addr(tgtIP))
{
return;
}

for(int tmp=0;tmp<20;tmp++)
{
//SYN+ACK -> 2+16=18(也是推测,哈哈)
if(tcpHeader->th_flag == 18 && tcpHeader->th_sport == htons(ports[tmp]))
{
printf("[Found]\t%s\tport\t%d\tOpen\n",tgtIP,ports[tmp]);
}
}
}

㈧ 如何用C语言实现显示二维码

intFb_QrDisp(intiPenX,intiPenY,QRcode*pQRcode)
{
T_PixelDatasg_tOriginPixelDatas;
T_PixelDatasg_tZoomPixelDatas;
//intiZoom;
inti;

g_tOriginPixelDatas.iWidth=pQRcode->width;
g_tOriginPixelDatas.iHeight=pQRcode->width;
g_tOriginPixelDatas.iLineBytes=g_tOriginPixelDatas.iWidth;
g_tOriginPixelDatas.aucPixelDatas=pQRcode->data;
/*
if(pQRcode->version<=1)
{
iZoom=2;
}
else
{
iZoom=2;

}
g_tZoomPixelDatas.iWidth=pQRcode->width*iZoom;
g_tZoomPixelDatas.iHeight=pQRcode->width*iZoom;
g_tZoomPixelDatas.iLineBytes=g_tZoomPixelDatas.iWidth;
g_tZoomPixelDatas.aucPixelDatas=malloc(g_tZoomPixelDatas.iWidth*
g_tZoomPixelDatas.iHeight);

if(g_tZoomPixelDatas.aucPixelDatas==NULL)
{
printf("g_tZoomPixelDatas->aucPixelDatasmallocfailed ");
return-1;
}

PicZoom(&g_tOriginPixelDatas,&g_tZoomPixelDatas);
#if0
printf("g_tZoomPixelDatas.iWidth=%d,g_tZoomPixelDatas.iHeight=%d ",
g_tZoomPixelDatas.iWidth,g_tZoomPixelDatas.iHeight);


for(i=0;i<(g_tZoomPixelDatas.iWidth*g_tZoomPixelDatas.iHeight);i++)
{
printf("0x%x,",g_tZoomPixelDatas.aucPixelDatas[i]);
}
printf(" ");

#endif
*/
Disp_FixelPic(iPenX,iPenY,&g_tZoomPixelDatas);
return0;
}

需要使用Qrcode

㈨ 怎样用C语言扫描。。

产生大量的[0,1]区间的随机数。

然后参与计算公式,你这个是蒙特卡洛法么。

呵呵。

㈩ C语言做图如何找扫描码

#include <stdio.h>
int main(void){
unsigned char ret = 0;
ret = getchar();
printf("Key ret %d\n", ret);
return 0;
}

热点内容
编程少儿学习 发布:2025-01-15 06:39:03 浏览:502
服务器搭建怎么设置 发布:2025-01-15 06:39:01 浏览:149
格鲁尔要什么配置 发布:2025-01-15 06:26:56 浏览:855
linux下安装jdk 发布:2025-01-15 06:03:05 浏览:545
服务器拷数据到电脑 发布:2025-01-15 05:58:19 浏览:481
android的单例模式 发布:2025-01-15 05:50:55 浏览:928
aes256在线加密工具 发布:2025-01-15 05:36:25 浏览:223
朋友圈的缓存在哪里 发布:2025-01-15 05:35:01 浏览:509
进入时间段的密码是多少 发布:2025-01-15 05:11:07 浏览:384
java开发培训那里好 发布:2025-01-15 05:11:02 浏览:772