c語言掃描碼
㈠ 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;
}