Титла: ip2int и int2ip Публикувано от: runtime в Oct 26, 2009, 14:17 Здравейте,
цял ден си търся функция, която да ми конвертира ip в int и обратно за gcc и не намирам пример и не намирам.. Моля, ако някой му се занимава да погледне или да каже как да си я направя. За съжаление се опитвам да направя някои работи и до някъде успявам, но познанията ми по C/GCC са доста малки и не мога да си я съчиня сам. Ако не Ви се занимава не карам никой! Просто ако някой може да удари едно рамо ще съм му много благодарен. Титла: Re: ip2int и int2ip Публикувано от: bop_bop_mara в Oct 26, 2009, 14:36 Функция на C или математическа формула?
Код http://en.wikipedia.org/wiki/File:Ipv4_address.svg Титла: Re: ip2int и int2ip Публикувано от: hyankov в Oct 26, 2009, 15:04 Варианти има, но има два въпроса на които трябва да отговориш, за да ти се помогне.
1) какво разбираш под типа IP, стринг, масив от интегрален тип, структура или нещо друго. 2) кой ще използва конвертирания адрес, тъй като в някои случаи ще ти се наложи след конвертирането да се извика някоя от любимите ми магически функции от семеиството htons(), htonl(), ntohs(), ntohl() ( http://beej.us/guide/bgnet/output/html/multipage/htonsman.html ($2) ). Успех! Титла: Re: ip2int и int2ip Публикувано от: runtime в Oct 26, 2009, 16:20 @bop_bop_mara - благодаря, това ме насочи към:
Код
@hyankov - стринг, за сега се уча само да смятам с него за това ми и трябваше... Чисто учебна цел :) Няма да правя нищо конкретно с него. Благодаря и на теб П.С. сега остана да го обърна обратно някак... :) Титла: Re: ip2int и int2ip Публикувано от: hyankov в Oct 26, 2009, 16:55 Супер, дерзай при това положение. За човек, който сега се учи, смело използваш указатели и битови операции (според мен това е начина :) ) иначе след като го получаваш във стринг, може би ще ти е интересно да разгледаш функциите sscanf и sprintf. Виждам, че и сам добре си разкопаваш нещата, което е добре, но все пак да ти дам едно примерче:
Код
Разбира се аз бих ползвал char, а не int, за да не се разхищава излишно памет, но това са си лично мои изкривявания. Ползвайки получените стойности можеш да ползваш първия метод на боп_боп_мара. Обратната операция също би се улеснила със sprintf (приниципа е същия). Поздрави, Ицо Титла: Re: ip2int и int2ip Публикувано от: runtime в Oct 26, 2009, 17:11 Ще го разгледам :) А аз не ги ползвам - уча се, а те така учат по сайтовете ;D ;D
Важното е да има упоритост... П.С. Мога да работя на Delphi добре, но под Linux онова изчадие Lazarus е ужасно... На C не мога да пиша и ред :-D Титла: Re: ip2int и int2ip Публикувано от: gat3way в Oct 26, 2009, 17:47 Има си glibc функция за това, нарича се inet_aton()
Титла: Re: ip2int и int2ip Публикувано от: runtime в Oct 27, 2009, 12:32 @gateway - много благодаря, кода се съкрати с 40 реда...
Обаче! Някой да си има на идея защо ми връща "Memory allocation failed" и гърми програмката след 10 мин работа по смятане? Позлвам pthread_create за многонишково изпълнение на функцията, може ли да е от това? Титла: Re: ip2int и int2ip Публикувано от: gat3way в Oct 27, 2009, 13:13 Дай да видим сорса, нищо не мога да кажа така :)
Титла: Re: ip2int и int2ip Публикувано от: runtime в Oct 27, 2009, 14:29 Имаш Л.С. ако системата ги праща защото няма никакъв статус дали е пратено или не?!?
Титла: Re: ip2int и int2ip Публикувано от: gat3way в Oct 27, 2009, 15:09 Пратено е даже 2 пъти, трябва и отговор да имаш вече :)
Титла: Re: ip2int и int2ip Публикувано от: hyankov в Oct 27, 2009, 15:16 Хммм, дали все пак не става въпрос за някой секретен проект за военните или има друга причина да не публикуваш кода, та току виж и другите сме се научили на нещо ;)
Титла: Re: ip2int и int2ip Публикувано от: runtime в Oct 27, 2009, 16:00 Съвсем леко е в разрез с правилата... за това и избягвам да го пусна. Мен лично не ми пречи.
Става въпрос за един socks/proxy скенер, ако администратор каже, че може да го пусна няма проблем :) Титла: Re: ip2int и int2ip Публикувано от: hyankov в Oct 28, 2009, 17:00 Щом е така - ок* :) . Това, което мога да препоръчам като четиво, е следното: http://www.advancedlinuxprogramming.com/alp-folder ($2). Книжката е много добра (по мое скромно мнение), а четвърта глава е точно за нишки, сигурно пропускаш нещо дребно и съм почти сигурeн, че ще намериш отговора там. А дори gat3way вече да ти е помогнал пак бих ти препоръчал да прегледаш материала.
/off-topic *само не разбрах кое точно от правилата на форума нарушаваш, но здраве да е [_]3 |