Selamın Aleyküm..
Bu konuda C++ ile adım adım User-Agent Generator kodlayacağız.
User-Agent ;
Siteye gönderilen HTTP isteğinde gönderilen bir başlık (header) alanıdır ve web tarayıcıları, cihazlar veya uygulamalar hakkında bilgi sağlar.
Başlayalım...
Kütüphaneleri projemize dahil edelim.
Şimdi de fonksiyon prototiplerimizi yazalım.
Güzel. Sırada oluşturulan rastgele user-agentları ekrana yazdırma var.
Rastgele user-agent oluşturma yapmamız gerekiyor.[/B][/I]
Rastgele user-agent oluşturma kısmından sonra tarayıcılar, işletim sistemleri ve diğer özellikleri içeren listeyi eklememiz gerekiyor. User-Agentlar bu sayede oluşturulacak.
Listeden Rastgele Tarayıcı bilgisi vs çekme.
User-Agent bilgilerini birleştirme yapmamız gerekiyor hacılar.
Verilen vektörden rastgele bir öğe seçilmesi lazım.
Bütün kodlar ;
Bu mantığın üzerine giderek bir tık daha gelişmiş bir programa ilerleyebiliriz.
Mesela şöyle yapabiliriz ;
Bu kodda bir işlemde 15 adet User-Agent oluşturuluyor. Onun dışında ise bir döngü sistemi var.
Her User-Agent in farklı olması için..
Eğer oluşturulan User-Agent daha önce oluşturulduysa tekrar oluşturulur vs.
Saygılarımla.. ByFelez
Bu konuda C++ ile adım adım User-Agent Generator kodlayacağız.
User-Agent ;
Siteye gönderilen HTTP isteğinde gönderilen bir başlık (header) alanıdır ve web tarayıcıları, cihazlar veya uygulamalar hakkında bilgi sağlar.
Başlayalım...
Kütüphaneleri projemize dahil edelim.
C++:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <vector>
#include <string>
Şimdi de fonksiyon prototiplerimizi yazalım.
C++:
std::string generateRandomUserAgent();
std::string getRandomElement(const std::vector<std::string>& vec);
int main() {
Güzel. Sırada oluşturulan rastgele user-agentları ekrana yazdırma var.
C++:
std::string userAgent = generateRandomUserAgent();
std::cout << "Oluşturulan User-Agent: " << userAgent << std::endl;
return 0;
}
Rastgele user-agent oluşturma yapmamız gerekiyor.[/B][/I]
C++:
std::string generateRandomUserAgent() {
Rastgele user-agent oluşturma kısmından sonra tarayıcılar, işletim sistemleri ve diğer özellikleri içeren listeyi eklememiz gerekiyor. User-Agentlar bu sayede oluşturulacak.
C++:
std::vector<std::string> browsers = {"Mozilla/5.0", "Chrome/91.0.4472.124", "Firefox/89.0"};
std::vector<std::string> platforms = {"Windows NT 10.0; Win64; x64", "Linux x86_64", "Macintosh; Intel Mac OS X 10.15"};
std::vector<std::string> extras = {"KHTML, like Gecko", "AppleWebKit/537.36", "Gecko/20100101 Firefox/89.0"};
Listeden Rastgele Tarayıcı bilgisi vs çekme.
C++:
std::string randomBrowser = getRandomElement(browsers);
std::string randomPlatform = getRandomElement(platforms);
std::string randomExtra = getRandomElement(extras);
User-Agent bilgilerini birleştirme yapmamız gerekiyor hacılar.
C++:
std::string userAgent = randomBrowser + " (" + randomPlatform + ") " + randomExtra;
return userAgent;
}
Verilen vektörden rastgele bir öğe seçilmesi lazım.
C++:
std::string getRandomElement(const std::vector<std::string>& vec) {
srand(static_cast<unsigned>(time(nullptr)));
int randomIndex = rand() % vec.size();
return vec[randomIndex];
}
Bütün kodlar ;
C++:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <vector>
#include <string>
std::string generateRandomUserAgent();
std::string getRandomElement(const std::vector<std::string>& vec);
int main() {
std::string userAgent = generateRandomUserAgent();
std::cout << "Oluşturulan User-Agent: " << userAgent << std::endl;
return 0;
}
std::string generateRandomUserAgent() {
std::vector<std::string> browsers = {"Mozilla/5.0", "Chrome/91.0.4472.124", "Firefox/89.0"};
std::vector<std::string> platforms = {"Windows NT 10.0; Win64; x64", "Linux x86_64", "Macintosh; Intel Mac OS X 10.15"};
std::vector<std::string> extras = {"KHTML, like Gecko", "AppleWebKit/537.36", "Gecko/20100101 Firefox/89.0"};
std::string randomBrowser = getRandomElement(browsers);
std::string randomPlatform = getRandomElement(platforms);
std::string randomExtra = getRandomElement(extras);
std::string userAgent = randomBrowser + " (" + randomPlatform + ") " + randomExtra;
return userAgent;
}
std::string getRandomElement(const std::vector<std::string>& vec) {
srand(static_cast<unsigned>(time(nullptr)));
int randomIndex = rand() % vec.size();
return vec[randomIndex];
}
Bu mantığın üzerine giderek bir tık daha gelişmiş bir programa ilerleyebiliriz.
Mesela şöyle yapabiliriz ;
C++:
#include <iostream>
#include <vector>
#include <ctime>
#include <cstdlib>
#include <algorithm>
class UserAgentGenerator {
public:
UserAgentGenerator();
std::string generateRandomUserAgent();
private:
std::vector<std::string> browsers;
std::vector<std::string> platforms;
std::vector<std::string> extras;
std::vector<std::string> usedUserAgents;
};
UserAgentGenerator::UserAgentGenerator() {
browsers = {"Mozilla/5.0", "Chrome/94.0.4606.81", "Firefox/93.0"};
platforms = {"Windows NT 10.0; Win64; x64", "Linux x86_64", "Macintosh; Intel Mac OS X 10.15"};
extras = {"KHTML, like Gecko", "AppleWebKit/537.36", "Gecko/20100101 Firefox/93.0"};
}
std::string UserAgentGenerator::generateRandomUserAgent() {
srand(static_cast<unsigned>(time(nullptr)));
std::string userAgent;
do {
std::string randomBrowser = browsers[rand() % browsers.size()];
std::string randomPlatform = platforms[rand() % platforms.size()];
std::string randomExtra = extras[rand() % extras.size()];
userAgent = randomBrowser + " (" + randomPlatform + ") " + randomExtra;
} while (std::find(usedUserAgents.begin(), usedUserAgents.end(), userAgent) != usedUserAgents.end());
usedUserAgents.push_back(userAgent);
return userAgent;
}
int main() {
UserAgentGenerator userAgentGenerator;
for (int i = 0; i < 15; ++i) {
std::string userAgent = userAgentGenerator.generateRandomUserAgent();
std::cout << "Oluşturulan User-Agent " << (i + 1) << ": " << userAgent << std::endl;
}
return 0;
}
Bu kodda bir işlemde 15 adet User-Agent oluşturuluyor. Onun dışında ise bir döngü sistemi var.
Her User-Agent in farklı olması için..
Eğer oluşturulan User-Agent daha önce oluşturulduysa tekrar oluşturulur vs.
Saygılarımla.. ByFelez
Son düzenleme: