Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Konwersja in_addr(adres IP) na string

Ostatnio zmodyfikowano 2013-01-04 16:28
Autor Wiadomość
Artekp999
Temat założony przez niniejszego użytkownika
» 2013-01-03 20:32:58
Specjalnie dla pekfos będę budował pełne zdania, bo kolega błędnie interpretuje moje zdania.
Nie ma jakiegoś krótszego sposobu konwersji(dokładnie krótszy kod)???

Jak widać po moim kodzie ip mam zapisane w in_addr, potrzebuje je zapisać w stringu gdyż muszę porównać go z inną pulą adresów IP.
Wszystkie powyższe kody są zbyt obszerne, a wyciągnięcie z nich odpowiednich funkcji kończy się zazwyczaj błędem lub nieudaną konwersją.

Ja po prostu potrzebuje wytłumaczenia lub krótkiego przykładu gdzie jest ta konwersja.

Nigdy się nie zajmowałem taką konwersją więc temu jestem w tym zielony.
P-72869
DejaVu
» 2013-01-03 20:48:36
Hę? No chyba żartujesz... dostałeś już linki do tego.
P-72870
CodeMeister
» 2013-01-03 21:09:06
Masz to w 1 linku od DejaVu. Tymi #include'ami się nie przejmuj bo są pod linuxa, poza tym linkuj winsocka. Czyli 'robota' faktycznie  w 100% polega na ctrl + c i v.
P-72876
Artekp999
Temat założony przez niniejszego użytkownika
» 2013-01-04 15:53:29
No to chyba jest dla mnie zbyt trudny gdyż ciągle mam błędy w kompilatorze. Próbowałem na kilka sposobów. A co do tych libków
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

Pobieram jeden, to znowu brakuje kolejnego itd.

Najlepiej jakbyście mi opisali dokładnie co muszę mieć i gdzie co w kleić. Bo jednak muszę coś źle robić.
P-72892
CodeMeister
» 2013-01-04 16:22:13
Ehh, to są libki pod Linuxa!

sam dołączasz tylko <winsock2.h> !

i jeśli piszesz w CodeBlocks to musisz jeszcze w opcjach projektu dodać: http://www.flickr.com/photos/qrtt1/165340830/

zobacz w -> http://cpp0x.pl/kursy/?nro=271
P-72897
kubawal
» 2013-01-04 16:23:42
No właśnie ich nie pobierasz, tylko zamiast wszystkich #include'ów dajesz:
C/C++
#include <winsock.h>

//na początku main()
WSADATA wsa;
if( WSAStartup( MAKEWORD( 2, 2 ), & wsa ) )
{
    cout << "Nie mogę załadować winsock'a!"
    return 1;
}

//na końcu main()  (przed return)
WSACleanup();

A w lib'ach (Project->Build options->nazwa_twojego_projektu(wybierasz na drzewku po lewej)->Linker settings->Link libraries) dodajesz:
ws2_32
P-72898
CodeMeister
» 2013-01-04 16:28:50
Jeszcze trzeba dodać bibliotekę:

C:\WINDOWS\system32\ws2_32.dll

//EDIT:
I zalecane jest używanie winsock2.h
P-72900
1 « 2 »
Poprzednia strona Strona 2 z 2