LINUX.ORG.RU

C and PHP разные результаты


0

0

Здраствуйте.

Проблема в переводе ип-адресса из строкового представления в числовое.

В php ip2long ( "172.22.244.50" ) возвращает 2887185458

А в С inet_aton от того же "172.22.244.50" - 854857388

Как их связать? И кто "правдивее" ??

Спасибо.

★★★

а все нашел ... кому инетерсно:

unsigned long long php_ip2long ( string str ) { unsigned long long a,b,c,d; sscanf(str.c_str(), "%llu.%llu.%llu.%llu", &a, &b, &c, &d); return (unsigned long long)(a*0x01000000 + b*0x00010000 + c*0x00000100 + d); }

fura13 ★★★
() автор топика
Ответ на: комментарий от Selecter

ну так это и есть в unsigned, без этого там -10..ит.д. мне нужно было связать или наклепать тоже только на си

fura13 ★★★
() автор топика
Ответ на: комментарий от anonymous

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>

int
main()
{
        printf("%u\n", ntohl(inet_addr("172.22.244.50")));

        return 0;
}

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.