⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idd2ip.c

📁 ipt网关源码
💻 C
字号:
#include <stdio.h>
#include <string.h>
#include <sybfront.h>
#include <sybdb.h>
#include <syberror.h>

#include "database.h"

void trim(char*);

//功能:由国际长途代码转换为通话网关的IP地址
//输入:国际长途代码+当地电话号码
//输出:通话网关IP地址、当地电话号码
//返回:成功1,失败-1

int idd2ip(char* all_phonenum,char* ip_address,char* remote_phonenum)
{
	int length; //字符串长度
	int i,j;
	char idd_code[10];
	char phone[20];
	DBCHAR ip[15];

	//从全部电话号码中取得长途代码,长途代码由第一个逗号分割,这是给用户使用时的规定
    length=strlen(all_phonenum);
	i=0;
	do {
       idd_code[i]=all_phonenum[i];
	   i++;
	}while(all_phonenum[i]!=',');
    //trim(idd_code);                   //删除所有空格
	i++;
	for(j=i;j<length;j++){
       phone[j-i]=all_phonenum[j];    //从全部电话号码中取得当地电话号码
	}
	

    //查询数据库的网关费率及路由选择表(rate_route_table)来取得通话网关的IP地址
	  
		 dbfcmd(dbproc," SELECT a003 FROM rate_route_table WHERE a002 LIKE '%s'",idd_code);
        
		/* Send the command to SQL server and start execution*/
		dbsqlexec(dbproc);

		/* Process the command */
		while(return_code=dbresults(dbproc)!=NO_MORE_RESULTS)
		{
			if(return_code==SUCCEED)
			{
				/* Bind results to program varibles */
				dbbind(dbproc, 1,STRINGBIND,(DBINT)0, ip);
			
				while(dbnextrow(dbproc)!=NO_MORE_ROWS)
				{  
				  trim(ip);
				  //如果结尾不是数字!清除结尾怪字符
				  i=strlen(ip);
				  if (ip[i-1]<'0' ||  ip[i-1]>'9'){
				  ip[i-1]=0;
				  }
                  i=strlen(phone);
				  if (phone[i-1]<'0' || phone[i-1]>'9') {
				  phone[i-1]=0;
				  }

				  strcpy(ip_address,ip);             //返回通话网关ip地址
				  strcpy(remote_phonenum,phone);     //返回当地电话号码
                  return(1);

				}
               return(-1);         //失败

			}

		}


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -