View Full Version : ถาม : การเขียนภาษาซีในการตรวจสอบพอร์ต
popvip
02-01-2007, 02:19 AM
คือตอนนี้มี assignment วิชา network ครับผม อาจารย์ให้เขียนโปรแกรมแสกนพอร์ต ว่ามีพอร์ตใดของคอมพิวเตอร์ที่เปิดอยู่บ้าง
ไม่ทราบว่าต้องไปศึกษาตรงไหนครับ มีฟังก์ชั่นอะไรในภาษาซีที่ติดต่อพอร์ตได้ครับ
ตอนนี้รู้เรื่องการเขียนภาษาซี แต่ไม่รู้ว่าจะเอาภาษาซีมาเขียนโปรแกรมแสกนพอร์ตยังไงครับ เพราะไม่มีหนังสือภาษาซีเล่มไหนสอน
ขอบคุณมากมายครับ
neoclassic
02-01-2007, 12:13 PM
#include <stdio.h>
#include <winsock.h>
int main(int argc, char *argv[])
{
WSADATA wsaData;
WSAStartup(MAKEWORD(1, 1), &wsaData);
if(argc < 3) {
printf("Usage: %s <ip/host> <startport> <endport> \n", argv[0]);
exit(1);
}
struct hostent *he;
struct sockaddr_in host;
int sock;
int start = atoi(argv[2]);
int end = atoi(argv[3]);
if((he=gethostbyname(argv[1])) == NULL) {
printf("Could not resolve host or ip \n");
exit(1);
}
printf("Found Host [ OK ]\n");
printf("Initializing socket [ OK ]\n");
printf("Connecting to Host [ OK ]\n");
printf("Scanning %s\n\n", argv[1]);
for(start; start < end; start++) {
if((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
perror("socket");
exit(1);
}
host.sin_family = AF_INET;
host.sin_port = htons(start);
host.sin_addr = *((struct in_addr *)he->h_addr);
if(connect(sock, (struct sockaddr *)&host, sizeof(struct sockaddr)) == -1) {
closesocket(sock);
}
else {
printf("Port %d open \n", start);
closesocket(sock);
}
}
return 0;
}
//By: logicport
[/b]
popvip
02-01-2007, 11:53 PM
โห. . .พี่ครับ ขอบคุณมากมายเลยครับ ให้มาทั้ง sourcecode เลย
ผมจะเอาไปศึกษาต่อครับ
//รอดตายแล้วเรา
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions Inc. All rights reserved.