int get_node_ip() { char node_ip_str[IP_STRING_LEN] = {0}; if (0 != get_inside_ip(node_ip_str)) { return -1; } uint32_t node_ip = ip2long(node_ip_str); int ret = -1; if (node_ip != g_node_ip) { ret = 0; g_node_ip = node_ip; STRNCPY(g_node_ip_str, node_ip_str, IP_STRING_LEN); DEBUG_LOG("node ip: %s, %u", g_node_ip_str, g_node_ip); } return ret; }
int main() { char ip[] = "111.13.89.118"; long val = ip2long(ip); printf("%ld\n", val); return 0; }
int main (void) { const char * ip = "10.0.0.4"; ulong lip = 167772164UL; char * rip; ulong longip; int ret = 0; if ( (longip = ip2long ((char *) ip)) == lip ) printf ( "PASS: + ip2long (%s -> %lu)\n", ip, longip ); else { printf ( "FAIL: + ip2long (%ip == %lu, but result is %lu)\n", ip, lip, longip ); ret = 1; } if ( strcmp ((rip = long2ip (lip)), ip) == 0 ) printf ( "PASS: + long2ip (%lu -> %s)\n", lip, rip ); else { printf ( "FAIL: + long2ip (%lu == %s, but result is %s)\n", lip, ip, rip ); ret = 1; } // thread safe api if ( strcmp ((long2ip_r (lip, rip)), ip) == 0 ) printf ( "PASS: + long2ip_r (%lu -> %s)\n", lip, rip ); else { printf ( "FAIL: + long2ip (%lu == %s, but result is %s)\n", lip, ip, rip ); ret = 1; } return ret; }
char *broadcast(const char *addr, const char *mask) { unsigned long a, m; int bits; if(strlen(mask)<3) { bits = 32 - atoi(mask); m = (~0 << bits) & 0xffffffff; } else m = ip2long(mask); a = ip2long(addr); return long2ip(a | (~ m)); }
tscript_value * tscript_ext_net_ip2long(tscript_value *arg) { tscript_value *res; char *tmp; asprintf(&tmp, "%lu", ip2long(tscript_value_as_string(tscript_value_convert_to_string(arg)))); res = tscript_value_create(TSCRIPT_TYPE_NUMBER, tmp); free(tmp); return res; }
/* {{{ * btree search string * */ PHP_METHOD(ip2region_class_entry_ptr, btreeSearchString) { char *ip = NULL; int arg_len; datablock_entry _block; uint_t (*func_ptr) (ip2region_t, uint_t, datablock_t); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &ip, &arg_len) == FAILURE) { return; } func_ptr = ip2region_btree_search; search(g_resource_ptr, func_ptr, ip2long(ip), &return_value, &_block); }
bool CFilter::filter(char* ip){ long long ulip=ip2long(string(ip)); //unsigned long ulip=inet_network(ip); vector<IPRange>::iterator it=ipVec.begin(); for(;it!=ipVec.end();++it) if(ulip >= (*it).low && ulip <= (*it).high) break; if(it==ipVec.end()) return true; else return false;//is a utsz ip }
int geo_find(geo_ctx_t* geo_ctx, const char* ip, geo_result_t* result) { uint32_t long_ip = ip2long(ip, strlen(ip)); return geo_find2(geo_ctx, long_ip, result); }
int qqwry_get_location(char *addr1,char *addr2,const char *ip,FILE *qqwry_file) { return qqwry_get_location_by_long(addr1,addr2,ip2long(ip),qqwry_file); }
int main (int argc, char ** argv) { char ip[256] = { 0, }; char oip[256] = { 0, }; char err[1024]; int opt; bool verbose = false; short input; #ifdef HAVE_GETOPT_LONG while ( (opt = getopt_long (argc, argv, "hv", long_options, (int *) 0)) != EOF ) { #else while ( (opt = getopt (argc, argv, "hv")) != EOF ) { #endif switch (opt) { case 'v' : verbose = true; break; default: usage (PNAME); } } if ( argc - optind < 1 || argc == 1 ) { usage (PNAME); return 1; } safecpy (ip, argv[optind], 256); input = (strchr (ip, '.') != NULL) ? IPv4 : LONGIP; #ifdef _WIN32 { WORD wVerReq = MAKEWORD (2, 2); // WinSock 2.2 요청 WSADATA wsaData; int nErrStatus; if ( (nErrStatus = WSAStartup (wVerReq, &wsaData)) != 0 ) { fprintf (stderr, "ERROR: Failed initialize WSAStart\n"); return 1; } } #endif strcpy (oip, ip); if ( valid_ip_address (ip, err) ) { fprintf (stderr, "ERROR: %s -> %s\n", oip, err); IPCALC_WSACleanup; return 1; } if ( verbose ) printf ("IPv4 : "); if ( verbose || input == LONGIP ) printf ("%s\n", ip); if ( verbose ) printf ("LONGIP : "); if ( verbose || input == IPv4 ) printf ("%lu\n", ip2long (ip)); IPCALC_WSACleanup; return 0; }