http://php.net/manual/en/function.long2ip.php
PHP: ip2long - Manual http://php.net/manual/en/function.ip2long.php Technical Reference: Communications, Volume 2 - inet_addr Subroutine http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm
import socket, struct

def ip2long(ip):
packedIP = socket.inet_aton(ip)
return struct.unpack("!L", packedIP)[0] def log2ip(long):
return socket.inet_ntoa(struct.pack('!L', long))

[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]

Technical Reference: Communications, Volume 2


inet_addr Subroutine

Purpose

Converts Internet addresses to Internet numbers.

Library

Standard C Library (libc.a)

Syntax

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


unsigned long inet_addr ( CharString)
char *CharString;

Description

The inet_addr subroutine converts an ASCII string containing a valid Internet address using dot notation into an Internet address number typed as an unsigned long value. An example of dot notation is 120.121.5.123. The inet_addr subroutine returns an error value if the Internet address notation in the ASCII string supplied by the application is not valid.

Note: Although they both convert Internet addresses in dot notation to Internet numbers, the inet_addr subroutine and inet_network process ASCII strings differently. When an application gives the inet_addr subroutine a string containing an Internet address value without a delimiter, the subroutine returns the logical product of the value represented by the string and 0xFFFFFFFF. For any other Internet address, if the value of the fields exceeds the previously defined limits, the inet_addr subroutine returns an error value of -1.

When an application gives the inet_network subroutine a string containing an Internet address value without a delimiter, the inet_network subroutine returns the logical product of the value represented by the string and 0xFF. For any other Internet address, the subroutine returns an error value of -1 if the value of the fields exceeds the previously defined limits.

Sample return values for each subroutine are as follows:


Application string inet_addr returns inet_netowork returns
0x1234567890abcdef 0x1234567890abcdef. 256.257.258.259 0x090abcdef 0xFFFFFFFF (= -1) 0xFFFFFFFF (= -1) 0x000000ef 0x0000ef00 0x00010203

The ASCII string for the inet_addr subroutine must conform to the following format:

string::= field | field delimited_field^1-3 | delimited_field^1-3
delimited_field::= delimiter field | delimiter
delimiter::= .
field::= 0X | 0x | 0Xhexadecimal* | 0x hexadecimal* | decimal* | 0 octal
hexadecimal::= decimal |a|b|c|d|e|f|A|B|C|D|E|F
decimal::= octal |8|9
octal::= 0|1|2|3|4|5|6|7

Notes:

  1. ^n indicates n repetitions of a pattern.
  2. ^n-m indicates n to m repetitions of a pattern.
  3. * indicates 0 or more repetitions of a pattern, up to environmental limits.
  4. The Backus Naur form (BNF) description states the space character, if one is used. Text indicates text, not a BNF symbol.

The inet_addr subroutine requires an application to terminate the string with a null terminator (0x00) or a space (0x30). The string is considered invalid if the application does not end it with a null terminator or a space. The subroutine ignores characters trailing a space.

The following describes the restrictions on the field values for the inet_addr subroutine:

Format Field Restrictions (in decimal)
a Value_a < 4,294,967,296
a.b Value_a < 256; Value_b < 16,777,216
a.b.c Value_a < 256; Value_b < 256; Value_c < 65536
a.b.c.d Value_a < 256; Value_b < 256; Value_c < 256; Value_d < 256

Applications that use the inet_addr subroutine can enter field values exceeding these restrictions. The subroutine accepts the least significant bits up to an integer in length, then checks whether the truncated value exceeds the maximum field value. For example, if an application enters a field value of 0x1234567890 and the system uses 16 bits per integer, then the inet_addr subroutine uses bits 0 -15. The subroutine returns 0x34567890.

Applications can omit field values between delimiters. The inet_addr subroutine interprets empty fields as 0.

Notes:

  1. The inet_addr subroutine does not check the pointer to the ASCII string. The user must ensure the validity of the address in the ASCII string.
  2. The application must verify that the network and host IDs for the Internet address conform to either a Class A, B, or C Internet address. The inet_attr subroutine processes any other number as a Class C address.

Parameters

CharString Represents a string of characters in the Internet address form.

Return Values

For valid input strings, the inet_addr subroutine returns an unsigned long value comprised of the bit patterns of the input fields concatenated together. The subroutine places the first pattern in the most significant position and appends any subsequent patterns to the next most significant positions.

The inet_addr subroutine returns an error value of -1 for invalid strings.

Note: An Internet address with a dot notation value of 255.255.255.255 or its equivalent in a different base format causes the inet_addr subroutine to return an unsigned long value of 4294967295. This value is identical to the unsigned representation of the error value. Otherwise, the inet_addr subroutine considers 255.255.255.255 a valid Internet address.

Implementation Specifics

The inet_addr subroutine is part of Base Operating System (BOS) Runtime.

All applications containing the inet_addr subroutine must be compiled with _BSD set to a specific value. Acceptable values are 43 and 44. In addition, all socket applications must include the BSD libbsd.a library.

Files

/etc/hosts
                          Contains host names.
/etc/networks
                          Contains network names.

Related Information

The endhostent subroutine, endnetent subroutine, gethostbyaddr subroutine, gethostbyname subroutine, getnetbyaddr subroutine, getnetbyname subroutine, getnetent subroutine, inet_Inaof subroutine, inet_makeaddr subroutine, inet_netof subroutine, inet_network subroutine, inet_ntoa subroutine, sethostent subroutine, setnetent subroutine.

Sockets Overview and Understanding Network Address Translation in AIX 5L Version 5.1 Communications Programming Concepts.


[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]

Converts Internet addresses to Internet numbers. ip2long long2ip的更多相关文章

  1. [区分] 1.计算机网络/internet(互联网) 2.Internet(因特网) 3.www/web(万维网)

    internet(互联网或互连网)是一个通用名词,泛指由多个计算机网络互联而成的虚拟网络.Inernet(因特网)是一个专用名词,指当前全球最大的.开放的.由众多网络相互连接而成的特定的计算机网络,它 ...

  2. 读书笔记二 How Does the Internet work?

    原文链接:  https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm 先写写 ...

  3. 企业IT管理员IE11升级指南【6】—— Internet Explorer 11面向IT专业人员的常见问题

    企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...

  4. TWebBrowser 调用最新版的Ie Internet Feature Controls (B..C)

    Internet Feature Controls (B..C)   Updated: July 2012 This article describes feature controls with n ...

  5. Internet Explorer 无法启用 JavaScript 怎么办?

    在 Internet Expllorer 8/9 中,有些同学在浏览网页时,收到提示:“需要启用 JavaScript …”,并且会发现网页上某些功能不能用了,比如点击网页里的按钮没反应等等. 怎么启 ...

  6. 解决安装失败的 Internet Explorer 11

    注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成.微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章.然而由机器翻译的文章并不总是完美的.它 ...

  7. AWS中的Internet 网关

    nternet 网关是一种横向扩展.支持冗余且高度可用的 VPC 组件,可实现 VPC 中的实例与 Internet 之间的通信.因此它不会对网络流量造成可用性风险或带宽限制. Internet 网关 ...

  8. 登陆Oracle EBS的Form遇到问题Internet Explorer has modified this page to help prevent cross-site scripting

    登陆Oracle EBS的Form遇到问题Internet Explorer has modified this page to help prevent cross-site scripting 今 ...

  9. internet与Internet的区别

    internet是用一个共同的协议族把多个网络连接在一起.而Internet指的是世界范围内通过TCP/IP互相通信的所有主机集合(超过1 0 0万台).Internet是一个internet,但in ...

随机推荐

  1. Android--&gt;Realm(数据库ORM)使用体验,lambda表达式

    Realm,为移动设备而生.替代 SQLite 和 Core Data. 非常庆幸,官方帮助文档有中文: https://realm.io/cn/docs/java/latest/ 尽管眼下最新的版本 ...

  2. atitit.jQuery Validate验证框架详解与ati Validate 设计新特性

    atitit.jQuery Validate验证框架详解与ati Validate 设计新特性 1. AtiValidate的目标1 2. 默的认校验规则1 2.1. 使用方式 1.metadata用 ...

  3. Atitit。激活某个程序的api attilax总结

    Atitit.激活某个程序的api attilax总结 1. 设置当前某窗口为当前窗口,有几个步骤要做:1.得到窗口句柄FindWindow2.切换键盘输入焦点AttachThreadInput3.显 ...

  4. Makefile 自动变量之 $(@D),$(@F)

    参考:http://www.gnu.org/software/make/manual/make.html '$(@D)'The directory part of the file name of t ...

  5. 0051 MyBatis关联映射--多对多关系

    用户与订单时一对多关系,再加上商品信息的话,订单与商品之间就是多对多关系了 DROP DATABASE IF EXISTS testdb; USE testdb; /*用户表,记录用户信息:用户与订单 ...

  6. 1.1 Application Fundamentals - 应用原理

    Android应用是使用Java编程语言编写的.Android SDK工具把代码.资源和数据文件编译为一个Android包,这是一个有.apk后缀的压缩文件.一个单独的.apk文件里包含所有的代码,这 ...

  7. Error occurred whiLe getting the data source contents for the report

    Web service request GetDataSourceContents to Report Server http://crm-vm/reportserver/ReportService2 ...

  8. import _mysql----ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。

    背景:安装了mysql,练习sql 操作,提示 ImportError DLL load failed: %1 不是有效的 Win32 应用程序 解决方法: 操作系统win10,64位,查看安装的my ...

  9. servlet里面拿到common.property的属性

    ---------------------common.property文件----------------------- kongxc_wx_dinghuo_orderSendMusic=http: ...

  10. Apollo 刨析:Localization

    九月 30 2014 11:27 上午     admin 0 Comments 今天我们来看一看Apollo中的Localization Component. 本地化在Apollo中的使用 像这样的 ...