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 >>>
一個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 =