Terminallerdeki, 'ping' komutunu kendimiz yazıyoruz

SAFESEC

Üye
13 Haz 2023
52
20

R7T3X

TERMINALLERDEKI PING KOMUTUN BASIC SEVIYEDE KENDIMIZ YAZIYORUZ
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;
}
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.