1. 程式人生 > >ip地址轉換成字串

ip地址轉換成字串

從網路上接收的ip地址,有時候為了節省空間,用一個32位無符號整形資料表示ipv4地址。我們接收到之後,又需要轉換成呢個數字和點格式的字串來進行後續的操作。

比較勤奮點的人會自己寫個函式做轉換。

我屬於比較懶的。不願意做別人已經做過的事情。實際上,在linux裡面,這些轉換都有系統函式完成的。

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

       int inet_aton(const char *cp, struct in_addr *inp);

       in_addr_t inet_addr(const char *cp);

       in_addr_t inet_network(const char *cp);

       char *inet_ntoa(struct in_addr in);

       struct in_addr inet_makeaddr(int net, int host);

       in_addr_t inet_lnaof(struct in_addr in);

       in_addr_t inet_netof(struct in_addr in);

其中 inet_ntoa就可以完成我要的功能。簡單實現過程如下:

struct in_addr   stInAddr;//必要的結構體,只要包含前面三個標頭檔案,就不要犯愁這個結構的定義

unsigned int iTemp;       //儲存整型的資料

unsigned char ipaddr[20]; //儲存轉換後的地址

stInAddr.s_addr=iTemp;
pIp=inet_ntoa(stInAddr);
strcpy(ipaddr,pIp);

就可以把iTemp轉換成字串儲存到ipaddr中。後面的工作就可以繼續下去了

相關推薦

ip地址轉換字串

從網路上接收的ip地址,有時候為了節省空間,用一個32位無符號整形資料表示ipv4地址。我們接收到之後,又需要轉換成呢個數字和點格式的字串來進行後續的操作。 比較勤奮點的人會自己寫個函式做轉換。 我屬於比較懶的。不願意做別人已經做過的事情。實際上,在linux裡面

ip地址轉換16進制long

util dex data ava art 進制 p地址 pan name <span style="font-size:18px;">public class IpUtil { /** * ip地址轉換成16進制long * @param ipS

IP地址轉換Long型數字演算法和原理(全網最細!!)

將ip地址轉換成數字地址的時候是我做一個歸屬地查詢的專案是碰見的,開始我並不明白將IP轉換成數字地址的原理,可能老師上課講了但是沒有好好聽,我覺得想理解下面演算法就應該理解IP地址和數字地址的原理(菜鳥專用(^_^)) IP地址一般是一個32位的二進位制數意思就是如果將IP地

【面試題】將ip地址轉換整數

題目:將ip地址轉換成整數 開始用了最粗暴的方法,將四段分別轉換成二進位制連線起來,然後掃描一遍,累加求和。效率太低。 假設ip地址:110.111.112.113,即為A.B.C.D,轉換成整數只需要將D左移0位(不需要移動),C左移8位,B左移16位,A左移24位即可

IP地址轉換整形

將一個Ip地址轉換成整形 //接受一個String型別的一個引數,將其轉化成一個long型別的//暫時轉化String型別的IP地址 public long ipToLong(String ip){  String[] ips = ip.split("//.");  Str

IP地址轉換Long型數字的演算法

在應用程式開發中,涉及到IP地址的儲存,大部分開發人員都將其存為String(或文字型別)。能否將固定格式為m.n.x.y的IP地址轉換成Long型的數字呢?答案是肯定的。在資料庫層面,可以直接將結果設定成表的主鍵,避免IP地址的重複,因為是主鍵,也就是表的索引了,資料庫

java ip地址轉換int

// 將127.0.0.1形式的IP地址轉換成十進位制整數,這裡沒有進行任何錯誤處理 public static long ipToLong(String strIp) { long[] ip

esp8266 inet_ntoa函式實現 ip地址轉換字串 MAC地址字串

esp8266晶片可作為mcu,功能很強大,但與傳統mcu相比,可用資源實在不多,連浮點數都不支援 IP地址轉字元創函式inet_ntoa很方便,但8266中沒有!!!!! 本節將講述如何自己實現inet_ntoa函式 ip轉字串 ******************

字串-06. IP地址轉換(20)

一個IP地址是用四個位元組(每個位元組8個位)的二進位制碼組成。請將32位二進位制碼錶示的IP地址轉換為十進位制格式表示的IP地址輸出。 輸入格式: 輸入在一行中給出32位二進位制字串。 輸出格式: 在一行中輸出十進位制格式的IP地址,其由4個十進位制陣列成(分別對

java 將一個ip地址分割一個數組

代碼 一個數 數組 java str 測試 服務器 都是 其他 這個問題以前真還沒註意,好像記得分割過規律的字符串,但是不是像IP這樣是以"."為分割規律字符,而是其他的。 今天又用到類似功能,代碼寫好了也沒測試,直接上傳服務器,但是就是會報錯,之後看了日誌是ip分割部分

如何把私有地址轉換公有地址來訪問外部?

bcd size color blog sum ide 默認 1.0 col 操作步驟及思路:一.分別給pc1,pc2配上ip地址,子網掩碼,網關#pc1ip:192.168.1.1子網掩碼:255.255.255.0網關:192.168.1.254pc2ip:192.16

iOS開發:字典(NSDictionary)和陣列( NSArray)轉換字串

概述: 在專案開發中,總是與伺服器進行著介面的互動,傳參是不可缺少的一部分。後臺返回的j son資料我們可以很好的解析使用,但是我們如何向後臺傳送j son資料的引數呢?要知道,一般伺服器是不允許傳物件的。以下是在專案中遇到的實際問題,在此總結一下,供大家交流。 一. 字典轉字串:

ARP:將32位的IP地址轉換為48位的實體地址

ARP:將32位的IP地址轉換為48位的實體地址。 IP地址是網路層的地址,連上網際網路的每一臺主機的每一個介面都會有一個IP地址,每臺主機的每個網絡卡均有唯一的實體地址,實體地址在生產時就已經定死,無法改變,而每個網絡卡的IP地址是可以改變的(例如連上不同的

將資料型別轉換字串,將字串轉換資料型別

方法1:採用靜態方法 int a = 123456789; String str = String.valueOf(a); 方法2:用包裝類轉換 float a=2.33f; String str=Float.toString(a); doubl

列印流printStream:列印流可以列印任意資料,而且列印資料之前會先把資料轉換字串再進行列印

package printStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; /* 列印流:(printSt

python整數與IP地址轉換 python整數與IP地址轉換 [轉]

python整數與IP地址轉換 [轉] 我們有時會將一個整數與IP地址進行互換,用python程式碼實現很簡單 將一個整數如2000000,變為一個IP地址的方式 >>> import socket >>>

StringUtils.toAppend 把 list 轉換字串

                                          &nb

一個int常量怎麼轉換字串

今天在工作的時候,我的老師隨口問了我一句,“一個int常量怎麼轉換成字串?”我隨口一答,“用toString方法。”老師說“加個雙引號不就完了嗎。這是Java基礎,回去補一補吧。”   首先,一個我們宣告int a = 1;那麼a是一個常量,它是沒有任何方法的,所以不能用toStr

mysql中int型的數字怎麼轉換字串 以及字串轉換int

MySQL 數字型別轉換函式(concat/cast)。 1、將Int 轉為varchar經常用 concat函式,比如concat(8,’0′) 得到字串 ’80′。 2、將varchar 轉為Int 用 cast(a as signed) a為varchar型別的字串

將一個數組轉換字串

public static String toString(int[] arr) {         StringBuilder str = new StringBuilder();         str.append("[");         for (int i =