此处将为大家介绍关于ipaddress.IPv6Address在Python中返回错误“AddressValueError:最多允许8个冒号”的详细内容,此外,我们还将为您介绍关于accessviol
此处将为大家介绍关于ipaddress.IPv6Address 在 Python 中返回错误“AddressValueError:最多允许 8 个冒号”的详细内容,此外,我们还将为您介绍关于access violation at address in module Read of address、c – SymFromAddr返回ERROR_INVALID_ADDRESS标志,如何在mingw中获取堆栈跟踪?、c – 从GetAdaptersAddresses()获取IP_ADDRESS_STRING?、c# – IPAddress.Any和IPAddress.IPv6Any字段有什么区别?的有用信息。
本文目录一览:- ipaddress.IPv6Address 在 Python 中返回错误“AddressValueError:最多允许 8 个冒号”
- access violation at address in module Read of address
- c – SymFromAddr返回ERROR_INVALID_ADDRESS标志,如何在mingw中获取堆栈跟踪?
- c – 从GetAdaptersAddresses()获取IP_ADDRESS_STRING?
- c# – IPAddress.Any和IPAddress.IPv6Any字段有什么区别?
ipaddress.IPv6Address 在 Python 中返回错误“AddressValueError:最多允许 8 个冒号”
如何解决ipaddress.IPv6Address 在 Python 中返回错误“AddressValueError:最多允许 8 个冒号”?
我在数据帧中的变量上使用 ipaddress.IPv6Address 以获得整数输出。但每次,我都会收到以下错误:“AddressValueError:最多允许 8 个冒号”。我的变量的每个 ip 地址都有 8 个或更少的冒号,所以看起来 ipaddress.IPv6Address 无法区分变量的单独行。有没有办法解决这个问题?
我可以使用单个 IP 地址,但不能使用多个。示例: int(ipaddress.IPv6Address(''2001:db8::ffff:ffff'')) 工作正常并返回一个整数。
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
access violation at address in module Read of address
总结
以上是小编为你收集整理的access violation at address in module Read of address全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
c – SymFromAddr返回ERROR_INVALID_ADDRESS标志,如何在mingw中获取堆栈跟踪?
#include <windows.h> #include <iostream> #include <imagehlp.h> #include <dbghelp.h> void printStack( void ) { HMODULE dbghelp_lib = LoadLibrary("dbghelp.dll"); if (NULL == dbghelp_lib) { printf("dbghelp.dll Failed"); } HANDLE process = GetCurrentProcess(); if (!SymInitialize( process,NULL,TRUE )) { printf("SymInitialize Failed: %d\n",GetLastError()); abort(); } else SetLastError(0); void * stack[100]; ULONG FramesToSkip = 0; ULONG FramesToCapture = 32; unsigned short frames = CaptureStackBackTrace( FramesToSkip,FramesToCapture,stack,NULL ); SYMBOL_INFO * symbol; symbol = ( SYMBOL_INFO * )calloc( sizeof( SYMBOL_INFO ) + 256 * sizeof( char ),1 ); symbol->MaxNameLen = 255; symbol->SizeOfStruct = sizeof( SYMBOL_INFO ); for(unsigned int i = 0; i < frames; i++ ) { if(!SymFromAddr( process,( DWORD )( stack[ i ] ),symbol )) { printf("SymFromAddr Failed: %d\n",GetLastError()); } printf( "%i: %s - 0x%0X\n",frames - i - 1,symbol->Name,symbol->Address ); } free( symbol ); } void testfunc() { printStack(); } int main() { testfunc(); }
它返回:
SymFromAddr Failed: 487 3: - 0x0 SymFromAddr Failed: 487 2: - 0x0 SymFromAddr Failed: 487 1: - 0x0 0: RegisterWaitForInputIdle - 0x7C81702E
它编译和链接没有任何警告.
编译器:http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.7.2/32-bit/threads-posix/sjlj/x32-4.7.2-release-posix-sjlj-rev7.7z
解决方法
>重新实现dbghelp API以使用DWARF(可能比您想要的更多工作)
>将DWARF符号转换为PDB.
对于#2的一些谷歌搜索找到了cv2pdb,它似乎面向D编程语言,但它看起来很通用,可能是一种更简单的方法.
c – 从GetAdaptersAddresses()获取IP_ADDRESS_STRING?
typedef struct _IP_ADAPTER_UNICAST_ADDRESS { union { struct { ULONG Length; DWORD Flags; } ; } ; struct _IP_ADAPTER_UNICAST_ADDRESS *Next; SOCKET_ADDRESS Address; IP_PREFIX_ORIGIN PrefixOrigin; IP_SUFFIX_ORIGIN SuffixOrigin; IP_DAD_STATE DadState; ULONG ValidLifetime; ULONG PreferredLifetime; ULONG LeaseLifetime; UINT8 OnLinkPrefixLength;} IP_ADAPTER_UNICAST_ADDRESS,*PIP_ADAPTER_UNICAST_ADDRESS;
似乎建议人类可读的IP地址字符串的唯一字段是Address,它是一个SOCKET_ADDRESS结构,定义如下:
typedef struct _SOCKET_ADDRESS { LPSOCKADDR lpSockaddr; INT iSockaddrLength;} SOCKET_ADDRESS,*PSOCKET_ADDRESS;
反过来,它使用另一种结构SOCKADDR,定义为:
对不起,这是复杂的方式发布在这里,因为它取决于IPv4与IPv6和Windows版本…所以这里是定义的链接:
http://msdn.microsoft.com/en-us/library/ms740496%28v=VS.85%29.aspx
如果你还没有像我那样头晕目眩并且遵循这个定义的迷宫,你可能会注意到检索IP地址的旧的虚线字符串样式是一场噩梦,因为过去使用GetAdaptersInfo()要容易得多.
我的问题是:是否有真正的IP Helper功能可以将IP_ADAPTER_UNICAST_ADDRESS转换为IPv4点分支(或IPv6字符串)?
解决方法
if ( (dwRetVal = GetIpAddrTable( pIPAddrTable,&dwSize,0 )) != NO_ERROR ) { printf("GetIpAddrTable Failed with error %d\n",dwRetVal); if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYstem | FORMAT_MESSAGE_IGnorE_INSERTS,NULL,dwRetVal,MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),// Default language (LPTSTR) & lpMsgBuf,NULL)) { printf("\tError: %s",lpMsgBuf); LocalFree(lpMsgBuf); } exit(1);}printf("\tNum Entries: %ld\n",pIPAddrTable->dwNumEntries);for (i=0; i < (int) pIPAddrTable->dwNumEntries; i++) { printf("\n\tInterface Index[%d]:\t%ld\n",i,pIPAddrTable->table[i].dwIndex); IPAddr.S_un.S_addr = (u_long) pIPAddrTable->table[i].dwAddr; printf("\tIP Address[%d]: \t%s\n",inet_ntoa(IPAddr) );
IP_ADAPTER_UNICAST_ADDRESS在地址中包含SOCKET_ADDRESS,后者又包含lpSockAddr中的LPSOCKADDR – 您可以使用WSAAddressToString将其转换为ipv4字符串形式.
c# – IPAddress.Any和IPAddress.IPv6Any字段有什么区别?
var listener = new TcpListener(IPAddress.Any,2222); listener.Server.SetSocketoption(SocketoptionLevel.IPv6,SocketoptionName.IPv6Only,0); listener.Start();
后来我意识到改为var listener = new TcpListener(IPAddress.IPv6Any,2222);会让它对我有用.究竟有什么区别
IPAddress.Any和IPAddress.IPv6Any字段?
The documentation on MSDN is a bit vague
解决方法
IPAddress.Any是0.0.0.0,IPAddress.IPv6Any是::
如果您只使用IPv6Any而不使用SocketoptionName.IPv6Only,那么您可以在同一个套接字上接受IPv4和IPv6连接.
今天关于ipaddress.IPv6Address 在 Python 中返回错误“AddressValueError:最多允许 8 个冒号”的分享就到这里,希望大家有所收获,若想了解更多关于access violation at address in module Read of address、c – SymFromAddr返回ERROR_INVALID_ADDRESS标志,如何在mingw中获取堆栈跟踪?、c – 从GetAdaptersAddresses()获取IP_ADDRESS_STRING?、c# – IPAddress.Any和IPAddress.IPv6Any字段有什么区别?等相关知识,可以在本站进行查询。
本文标签: