📄 idd2ip.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 + -