jetboy_hrn1990

Yeni üye
25 Şub 2020
19
5
3
(34) İstanbul Avrupa
Arkadaşlar Alan adından IP adresi alma c++ kodları ile. %100 çalışıyor.Sadece Alan adı Manuel (Elle giriliyor.)
BP ye Input variable'den Domain yazarak Giriş oluşturmak için.
CPP ve Header dan DomainToIpAdress(*****)  >> ***** yerine FString ile değişkende tanımlattım.
Ama Uyarı veriyor.ANSICHAR tipine FString yazılamaz diye.Usta kişilerden yardım bekliyorum.Çok denedimde acemiyim.

Fakat Alttaki kodlar %100 çalışıyor.Sadece Alan adı Manuel (Elle giriliyor.)


// HEADER 
#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "SocketSubsystem.h"
#include "Sockets.h"
#include "IPaddress.h"
#include "Kutuphane.generated.h"

UCLASS()
class TEST_API UKutuphane : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
UFUNCTION(BlueprintCallable, Category = MyCategory)
static FString DomainToIpAdress();
};

// CPP
#include "Kutuphane.h"
#include "SocketSubsystem.h"
#include "Sockets.h"
#include "IPAddress.h"

FString  UKutuphane::DomainToIpAdress()
{
            ISocketSubsystem* const SocketSubSystem = ISocketSubsystem::Get();
            auto ResolveInfo = SocketSubSystem->GetHostByName("google.com");
            while (!ResolveInfo->IsComplete());
            const FInternetAddr* Addr = &ResolveInfo->GetResolvedAddress();
            uint32 OutIP = 0;
            Addr->GetIp(OutIP);
            return (FString::printf(TEXT("IP is %d.%d.%d.%d "), 0xff & (OutIP >> 24), 0xff & (OutIP >> 16), 0xff & (OutIP >> 8), 0xff & OutIP));
}
 
Teşekkürler.Düzelttim.Yeni kodları lazım olana yardımcı olmak adına Bu yorum altına atacağım.
+Rep verdim :)


Arkadaşlar Bu Blueprint in Hazır hali.%100 Çalışıyor.Module içine "Sockets","Networking" eklemeyi unutmayalım.(Build.cs olan)




// HEADER 
#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "SocketSubsystem.h"
#include "Sockets.h"
#include "IPaddress.h"
#include "Kutuphane.generated.h"
UCLASS()
class TEST_API UKutuphane : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
UFUNCTION(BlueprintCallable, Category = MyCategory)
static FString DomainToIpAdress(FString EnterDomain);
};

// CPP
#include "Kutuphane.h"
#include "SocketSubsystem.h"
#include "Sockets.h"
#include "IPAddress.h"
FString  UKutuphane:
biggrin.png
omainToIpAdress(FString EnterDomain)

{
    ISocketSubsystem* const SocketSubSystem = ISocketSubsystem::Get();
    auto ResolveInfo = SocketSubSystem->GetHostByName(TCHAR_TO_ANSI(*EnterDomain));
    while (!ResolveInfo->IsComplete());
    if (ResolveInfo->GetErrorCode() == 0)
    {
        const FInternetAddr* Addr = &ResolveInfo->GetResolvedAddress();
        uint32 OutIP = 0;
        Addr->GetIp(OutIP);
        return (FString::printf(TEXT("%d.%d.%d.%d "), 0xff & (OutIP >> 24), 0xff & (OutIP >> 16), 0xff & (OutIP >> 8), 0xff & OutIP));
    }
    else;
    {
        return (FString::printf(TEXT("%d.%d.%d.%d "), 0, 0, 0, 0));
    }
}





// Module

using UnrealBuildTool;

public class TEST : ModuleRules
{
public TEST(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore","Sockets","Networking" });

PrivateDependencyModuleNames.AddRange(new string[] {  });

// Uncomment if you are using Slate UI
// PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });

// Uncomment if you are using online features
// PrivateDependencyModuleNames.Add("OnlineSubsystem");

// To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true
}
}