- 13 Haz 2023
- 54
- 21
R7T3X
TERMINALLERDEKI PING KOMUTUN BASIC SEVIYEDE KENDIMIZ YAZIYORUZ
C++
C++
Kodumuzun ilk bölümünde, gerekli başlık dosyalarını (iostream, sys/socket.h, arpa/inet.h, unistd.h) dahil ediyoruz. Bu başlık dosyaları, giriş/çıkış işlemleri, soket işlemleri, IP adresi dönüşümleri ve sistem çağrıları için gereklidir.
C++:
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
using namespace std;
Sonra, kullanıcıdan hedef IP adresini girmesini istiyoruz
C++:
int main() {
string ip;
cout << "Hedef IP adresini girin: ";
cin >> ip;
Bir soket oluşturuyoruz (socket() fonksiyonu kullanılarak) ve oluşturulan soketin tanımlayıcısını kontrol ediyoruz
C++:
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1) {
cerr << "Hata: Soket oluşturulamadı" << endl;
return 1;
}
Sunucu adress bilgilerini saklamak için sockaddr_in yapısını kullanıyoruz. Bu yapının içine IPv4 adres ailesini, hedef port numarasını ve IP adresini atıyoruz. IP adresi string formatından ağ byte sırasına dönüştürmek için inet_pton() fonksiyonunu kullanıyoruz(basic ping komutu denince aklima bu geldi)
C++:
struct sockaddr_in server;
server.sin_family = AF_INET;
server.sin_port = htons(22);
inet_pton(AF_INET, ip.c_str(), &server.sin_addr);
Daha sonra, connect() fonksiyonu ile sunucuya bağlanıyoruz
C++:
int connection_result = connect(sock, (struct sockaddr *)&server, sizeof(server));
if (connection_result == -1) {
cerr << "Hata: Hedef sistemle bağlantı kurulamadı" << endl;
close(sock);
return 1;
}
Bağlantı Başarılı ve Soket Kapatma
C++:
cout << "Bağlantı başarılı: Hedef sistem aktif" << endl;
close(sock);
return 0;
}
Evet arkadaşlar, gördüğünüz gibi IP ve port numarası yazıyoruz. Hedef aktif mi değil mi öğrenmiş oluyoruz. Bu sadece temel düzeyde bir ping komutudur. Yanlışım veya hatam varsa lütfen düzeltin
TÜM KOD
C++:
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
using namespace std;
int main() {
string ip;
cout << "Hedef IP adresini girin: ";
cin >> ip;
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1) {
cerr << "Hata: Soket oluşturulamadı" << endl;
return 1;
}
struct sockaddr_in server;
server.sin_family = AF_INET;
server.sin_port = htons(22);
inet_pton(AF_INET, ip.c_str(), &server.sin_addr);
int connection_result = connect(sock, (struct sockaddr *)&server, sizeof(server));
if (connection_result == -1) {
cerr << "Hata: Hedef sistemle bağlantı kurulamadı" << endl;
close(sock);
return 1;
}
cout << "Bağlantı başarılı: Hedef sistem aktif" << endl;
close(sock);
return 0;
}