ip地址用什麼數據類型存儲
1. 分析如何使用int類型存儲一個ipv4地址
使用int類型存儲一個ipv4地址為IP地址(IPV4)轉換為int類型。
ip地址是一個32位的二進制數,實際上是4個位元組,點分十進製表示為(a.b.c.d)a、b、c、d的值都是(0-255),例如ip地址(192.168.0.1)就是一個合格ip地址,可以知道a、b、c、d這些欄位都是一個無符號位元組表示的。
2. ip數據報在電腦是怎麼存儲的
如果是IPv4類型,那麼將IP轉為INT UNSIGNED存儲在資料庫能節約內存,INET_ATON()和INET_NTOA()可以管理ip地址在字元串和數字值之間的轉換。
3. sqlServer建表存儲Ip地址應該使用哪種數據類型
varchar即可。
sqlserver中varchar最大長度是8000,但是可以使用varchar(max),可以達到2G。
關於解釋:
有var前綴的,表示是實際存儲空間是變長的,varchar,nvarchar
所謂定長就是長度固定的,當輸入的數據長度沒有達到指定的長度時將自動以英文空格在其後面填充,使長度達到相應的長度;而變長字元數據則不會以空格填充,比較例外的是,text存儲的也是可變長。
4. IP地址屬於什麼數據類型
int,varcahr是資料庫中的,而資料庫沒有特定的IP類型的。
而int范圍不能滿足ip的要求,所以只能是
varchar
5. IP地址存儲在mysql中用什麼欄位
用char()類型,因為IP地址基本定長,如114.114.114.114,為15個字元,最少也是如8.8.8.8,為7個字元,但非常少用這樣的IP,一般過都是12-15個字元長度,用varchar()變長類型的話會因此減慢資料庫速度
6. C語言中,IPv4和IPv6地址用什麼數據格式存儲
ipv4中的ip地址長度才為32位 ,實際上還會包含報頭、版本號、記錄上層信息的數據結構等等。不是一個數據類型就可以表示的,都是採用結構體的形式。
有興趣可以看看Tcp_ip協議(共3卷)。
7. IP地址格式是什麼樣的
例如,鹽城市信息網路中心的伺服器的IP地址為210.73.140.2,對於該IP地址,我們可以把它分成網路標識和主機標識兩部分,這樣上述的IP地址就可以寫成:
網路標識:210.73.140.0
主機標識: 2
合起來寫:210.73.140.2
8. 什麼是存儲在SQL伺服器的IP地址最合適的數據類型
1. 存儲一個IPv4地址作為binary(4)是最真實的,以究竟意味著什麼,並且可以很容易面罩式的查詢。但是,它需要轉換和退出,如果你的文本後表示,實際上。在這種情況下,您可能更喜歡一個字元串格式。 一個SQL Server的函數 CodeGo.net,可以幫助如果你是存儲為一個字元串是PARSENAME順便提一下。不是專為IP地址,但完全適合他們。下面的調用將返回'14':SELECT PARSENAME('123.234.23.14', 1)
(編號為從右到左)。
2. 我通常為varchar(15),用於IPv4地址-但它們排序是一種痛苦,除非你墊零。 我還保存它們作為過去的詮釋。System.Net.IPAddress有GetAddressBytes方法,該方法將返回的IP地址為4位元組表示的IP地址的數組。你下面的C#代碼的轉換IPAddress到int...var ipAsInt = BitConverter.ToInt32(ip.GetAddressBytes(), 0);
我,我不得不做了很多尋找重復數據刪除的地址,並希望該指標是小&越快越好。然後拉地址背出的int和成IPAddressNET中的對象,請使用GetBytes在方法BitConverter得到int作為一個位元組數組。通過該位元組數組的構造函數IPAddress這需要一個位元組數組,你最終備份與IPAddress您開始使用。var myIp = new IPAddress(BitConverter.GetBytes(ipAsInt));
3. 對於這個在接受的答案 它們排序是一種痛苦,除非你墊 零。 下面是SQL Server 2008的一個把戲(從伊茨克奔甘在這本書)with ip_addresses as
(
SELECT '131.33.2.201' AS ip_address UNION ALL
SELECT '2.12.4.4' AS ip_address UNION ALL
SELECT '131.33.2.202' AS ip_address UNION ALL
SELECT '2.12.4.169' AS ip_address UNION ALL
SELECT '131.107.2.201' AS ip_address
)
select ip_address
from ip_addresses
ORDER BY CAST('/' + ip_address + '/' AS hierarchyid)
回報ip_address
-------------
2.12.4.4
2.12.4.169
131.33.2.201
131.33.2.202
131.107.2.201
4. 我最喜歡的文章談到為什麼你不該'正則表達式來解析IP地址。大多數他們正在談論的是真正解釋為什麼你應該非常小心的IP地址的文本表示。我建議你決定什麼數據類型在資料庫中之前讀它,大概也因為種種處理您的應用程序會做(即使文章是寫關於Perl,它的任何語言)。 我想在年底的32位數據類型(或4個8位數據類型)將是最好的選擇。
5. 我在這里讀了很多類似的問題,並沒有在這個在別人的頭號答案的答復:「對於IPv4地址,您可能希望將它們保存為一個無符號整型的INET_ATON()和INET_NTOA()函數返回其值的IP地址,反之亦然「。我想這就是我要在我的分貝走,除非我在上面決定。
6. 最好的方法(當不需要排序和對IP的其他控制)是其存儲為整數,將其存儲為varchar等將花費不僅僅是一個簡單的無辜整型的方式更多的性能。 有一個屬性IPAddress.Address但它是過時的,我也不知道為什麼,因為如果你不需要排序或通過IP類控制,最好的辦法是將其存儲為無符號整數(即有一個最大值0xffffffff它等於255.255.255.255在十進製表示。 也IPAddress類有一個接受長期的構造 並根據VS調試器可視化工具,即IPAddress類本身存儲它的內部變數作為一個數字(而不是位元組數組)。 了解更多關於存儲的解決方法在MS SQL Server的單位: 在MS SQL 4位元組無符號整型? SQL Server的4位元組無符號整型
7. IPV4? INT?或TINYINT×4? 這真的取決於它是否只是存儲和檢索或如果它的將是一個遠程的搜索條件。
8. 不要忘了IPv6的-你需要更多的房間,如果你需要存儲它們-128為IPv4的32。 我會去的bigint,但你需要幫手的代碼翻譯到人類友好的版本。
9. 對於空間高效的存儲和當值是要被處理(匹配的范圍),一個int。 IP地址真的只是一個32位的值。 對於一個簡單的解決方案,你只是要存儲的值來查看它,一varchar(15)存儲IP地址的字元串表示表單。
10. 我可能會用一個去varchar或char。 和大小設置為15。
11. PHP,然後PHP5有2個內置的轉換函數: ip2long和long2ip(或)它返回/轉換有符號整數
12. 我已經受夠了進行四SMALLINT(或其他短小的整數數據類型,你喜歡)列-每個八位位組。然後,你可以做一個視圖,它摔破在一起作為一個char字元串(顯示)或則你可以寫簡單的運算符來決定誰都是在等什麼 這是相當快的(只要你做正確的索引),並且還允許很容易查詢(沒有字元串操作!)。
13. 由於IP地址有32位,它可以你很長的保存價值? 它不會是因為空間浪費VARCHAR,但隨後你會收到將其解碼回一個IP,每一個和時延和開銷成本可能不值得。
14. 引用這樣的: 在CHAR存儲IP地址(15)柱。這取決於有多少數據要存儲,這可能是非常浪費的(為什麼我們需要存儲的點?)